在CheckedTextView中调整自定义checkMark位置

时间:2014-04-28 05:51:32

标签: android listview checkedtextview checkmark

我有一个ListView,每行包含一个CheckedTextView。我正在使用自定义checkMark属性,该属性使用drawable:

<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"
/>

drawable checkbox_selector正确处理&#39; on&#39;并且&#39;关闭&#39;按预期选择,如下:

<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 with checkMark visible

如您所见,复选框顶部对齐。有没有办法让它正中心呢?检查选择器资源的属性,我找不到任何相关属性来执行此操作。

有什么方法可以调整它的位置吗?谢谢你的时间。

2 个答案:

答案 0 :(得分: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" />

答案 1 :(得分:1)

也许添加&#34; center_vertical&#34;。

android:gravity="center_vertical"

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