【问题标题】:android gravity center not working in textviewandroid重心在textview中不起作用
【发布时间】:2015-10-15 11:45:50
【问题描述】:

我以编程方式创建了 4 个文本视图并将其添加到我的布局中,我有一个问题重心属性不起作用。我的意思是当我增加文本视图的文本大小时,重心被废除。默认文本大小为 14dp 请检查我的代码 sn-p。

private class DigitView extends TextView {
    public DigitView(Context context) {
        this(context, null);
    }

    public DigitView(Context context, AttributeSet attrs) {
        this(context, attrs, 0);
    }

    public DigitView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);

    }
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);


        // If selected draw the accent
        if (isSelected()) {
            this.setBackgroundResource(R.drawable.pincode_background_border_select);

        }
        else
        {
            this.setBackgroundResource(R.drawable.pincode_background_border_unselect);
        }

    }

}




 for (int i = 0; i < mDigits; i++) {
        DigitView digitView = new DigitView(getContext());
        digitView.setWidth(valueInPixels);
        digitView.setHeight(valueInPixels);
        digitView.setTextColor(Color.WHITE);
        digitView.setTextSize(mDigitTextSize);
        digitView.setGravity(Gravity.CENTER);
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            digitView.setElevation(mDigitElevation);
        }

        LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
        if (i > 0) {
            lp.leftMargin = 10; // margin goes here. Use marginStart instead to support right-to-left layouts
        }
        childView.addView(digitView, lp);
    }

这是我的布局 xml 代码

<LinearLayout
    android:id="@+id/my_Container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    >


    <LinearLayout
        android:id="@+id/my_Container_child"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
         >
    </LinearLayout>

</LinearLayout>



my_Container_child is my layout

this is a result

我做错了什么?如果有人知道解决方案,请帮助我 谢谢

【问题讨论】:

  • 向LinearLayout添加布局重力属性
  • 您希望textView 中的文本居中还是linearLayout 中的textView 居中?还有哪个布局是childView?
  • @yogi 我更新了我的问题。请查看我的结果图片
  • @ShadowDroid Droidi 更新了我的问题。请查看我的结果图片
  • 为 textview 提供 wrap_content 属性的高度和宽度,我认为它会起作用

标签: android textview gravity


【解决方案1】:

试试这个。它会工作的......

<LinearLayout
    android:id="@+id/my_Container"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center"
    android:layout_gravity="center"
   >


    <LinearLayout
       android:id="@+id/my_Container_child"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       >
    </LinearLayout>

</LinearLayout>

【讨论】:

【解决方案2】:

不要给 textview 提供固定的高度和宽度

我认为这段代码有错误

 DigitView digitView = new DigitView(getContext());
 digitView.setWidth(valueInPixels);
 digitView.setHeight(valueInPixels);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-22
    • 2016-02-22
    • 2020-02-06
    • 2021-10-17
    • 2012-11-10
    • 1970-01-01
    • 2014-07-19
    • 2021-10-22
    相关资源
    最近更新 更多