Android:如何将CheckBox文本重力设置为整个控件的中心?

时间:2016-09-03 03:25:31

标签: android xml styles

我要用图片解释一下:

1

奥基。当我将引力设置为“中心”时,这就是CheckBox的工作方式。但是,我想把它放在整个物体的中心,以红色区域为参考。

2

我该怎么办? 也许使用android:paddingLeft=-30dp,但我认为有更好的方法。

抱歉英语不好,希望你能理解。

4 个答案:

答案 0 :(得分:0)

我不认为复选框有这样的属性,这是实现这种要求的替代解决方案:

<RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content">
                <CheckBox
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_centerVertical="true"
                    android:text=""

                />
                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerInParent="true"
                    android:text="MyCheckBox"/>

            </RelativeLayout>

答案 1 :(得分:0)

试试这个

  

如果你修正了宽度

<CheckBox
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:text="My Check Box"
    android:gravity="center"

    />

enter image description here

  

使用Wrap Parent和padding ...

  <CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:text="My Check Box"
    android:paddingLeft="20dp"
    android:gravity="center"

    />

enter image description here

  

通过相对布局和TextView

<RelativeLayout
    android:id="@+id/rlv1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:background="@android:color/holo_red_dark"
  >

<CheckBox
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:text="@null"
    android:id="@+id/checkbox"

    android:gravity="center"></CheckBox>


<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@+id/checkbox"
    android:layout_marginLeft="20dp"
    android:layout_centerVertical="true"
    android:text="My Check Box"/>
</RelativeLayout>

enter image description here

答案 2 :(得分:0)

我遇到了同样的问题,这个怎么样?

enter image description here

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<RelativeLayout
    android:id="@+id/relativelayout1"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:paddingTop="@dimen/abc_action_bar_icon_vertical_padding_material">

    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="CheckBox"
        android:id="@+id/checkbox1"
        android:gravity="center"
        android:layout_centerHorizontal="true"
        android:checked="false"></CheckBox>

</RelativeLayout>
</LinearLayout>

答案 3 :(得分:0)

您可以使用textAligment属性

checkbox.textAlignment = View.TEXT_ALIGNMENT_CENTER