4

我有一个 ListView,其中每一行都包含一个 CheckedTextView。我正在使用自定义 checkMark 属性,该属性使用可绘制对象:

<CheckedTextView
    android:id="@+id/body"
    android:gravity="left"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:layout_below="@+id/date"
    android:textSize="18sp"
    android:checkMark="@drawable/checkbox_selector"
/>

可绘制的 checkbox_selector 按预期正确处理“on”和“off”选择,如下所示:

<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:state_selected="true" android:state_pressed="true"
        android:drawable="@drawable/checkbox_on" > 
    </item>
    <item android:state_pressed="true" android:drawable="@drawable/checkbox_on" />
    <item android:state_checked="true" android:drawable="@drawable/checkbox_on"/>
    <item android:drawable="@drawable/checkbox_off" />
</selector>

这是当前 ListView 布局的屏幕截图:

带有复选标记的 ListView 可见

如您所见,复选框顶部对齐。有什么办法可以将其居中吗?检查选择器资源的属性,我找不到任何相关属性来执行此操作。

有什么办法可以调整它的位置吗?感谢您的时间。

4

2 回答 2

9

尝试这个。

<CheckedTextView
    android:id="@+id/body"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:checkMark="@drawable/checkbox_selector"
    android:checked="false"
    android:clickable="true"
    android:focusable="true"
    android:gravity="center_vertical"
    android:onClick="toggle"
    android:text="Some text here"
    android:textSize="18sp" />
于 2014-04-28T06:04:20.117 回答
1

也许添加“center_vertical”。

android:gravity="center_vertical"

参考:http ://developer.android.com/reference/android/widget/ LinearLayout.html`

于 2014-04-28T06:08:02.790 回答