将复选框对齐到ListView项目的中心

时间:2017-11-20 07:31:20

标签: android android-layout listview android-checkbox

我的应用程序使用以下布局来显示剪辑列表。

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

    <TextView
        android:id="@+id/ClipNo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Clip No"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/ClipTime"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Time"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/ClipDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Date"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>

    <CheckBox android:id="@+id/ClipMark"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" />

</LinearLayout>

下图显示了布局的输出

enter image description here

我如何安排&#39; CheckBox&#39;到了马克的中心。标题

提前致谢

8 个答案:

答案 0 :(得分:8)

因为您添加了android:layout_weight="1"

更改以下代码

 <CheckBox 
        android:id="@+id/ClipMark"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1" />

<LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:layout_weight="1">

        <CheckBox 
            android:id="@+id/ClipMark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

</LinearLayout>

答案 1 :(得分:2)

我将CheckBox放在LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/ClipNo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Clip No"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/ClipTime"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Time"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>

    <TextView
        android:id="@+id/ClipDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="Date"
        android:textSize="20sp"
        android:gravity="center"
        android:layout_weight="1"/>
    <LinearLayout
        android:gravity="center"
        android:layout_weight="1"
        android:layout_width="0dp"
        android:layout_height="wrap_content">

        <CheckBox android:id="@+id/ClipMark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>

    </LinearLayout>
</LinearLayout>

答案 2 :(得分:1)

LinearLayout 设为 PARENT

    <LinearLayout
            android:layout_width="0dp"
            android:gravity="center"
            android:layout_weight="1"
            android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/ClipMark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"/>

   </LinearLayout>

答案 3 :(得分:1)

如果您检查设备布局边界,CheckBox会根据您当前的布局正确对齐到中心。将CheckBox添加到布局(LinearLayout示例)并实施布局。
它应该有效。
提示:请参阅:{{3} }

答案 4 :(得分:1)

尝试在CheckBox

中添加RelativeLayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:id="@+id/ClipNo"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Clip No"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/ClipTime"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Time"
        android:textSize="20sp" />

    <TextView
        android:id="@+id/ClipDate"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Date"
        android:textSize="20sp" />

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">

        <CheckBox
            android:id="@+id/ClipMark"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerInParent="true" />
    </RelativeLayout>

</LinearLayout>

答案 5 :(得分:1)

尝试这个对我有用的

  <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1">
        <CheckBox
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/interested_item_checkbox"
            android:layout_centerInParent="true"
            style="@style/interested_item_textview"
            />
    </RelativeLayout>

答案 6 :(得分:0)

替换复选框xml代码

<RelativeLayout
    android:layout_width="0dp"
    android:layout_weight="1"
    android:layout_height="wrap_content">

<CheckBox
    android:id="@+id/ClipMark"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true" />
</RelativeLayout>

答案 7 :(得分:0)

我只是在我的复选框中添加了负的保证金值

<style name="details_checkbox">
    <item name="android:scaleX">0.80</item>
    <item name="android:scaleY">0.80</item>
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:layout_alignParentEnd">true</item>
    <item name="android:layout_marginTop">-4dp</item>
</style>