在SherlockListFragment
我使用android.R.layout.simple_list_item_activated_1
显示单行文字。我正在使用以下内容让ListView
在选中时自动突出显示列表项...
getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
这很好用。
但是,我有另一个SherlockListFragment
使用带有两个TextView
小部件的列表项布局,如下所示...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
<TextView
android:id="@+id/gl_item_single_start_time_short"
...
>
</TextView>
<TextView
android:id="@+id/gl_item_single_title"
...
>
</TextView>
</RelativeLayout>
我想做的是在选择列表项时自动突出显示第二个TextView
(gl_item_single_title
)。
问题是 - 我该怎样做才能实现这一目标?我可以在TextView
上设置一个属性,还是我必须自己处理适配器返回的视图?
答案 0 :(得分:1)
我正在使用android.R.layout.simple_list_item_activated_1来显示一行文字。
我认为您的意思是使用自android.R.layout.simple_list_item_activated_1
以来android.R.layout.simple_list_item_activated_1
复制的自己的布局。
我想做的是在选择列表项时自动突出显示第二个TextView(gl_item_single_title)。
我认为你的意思是你希望它的行为与android.R.layout.simple_list_item_activated_2
一样,并为你的选择提供持续的亮点。
我该怎么做才能实现这一目标?
复制android:background="?android:attr/activatedBackgroundIndicator"
并修改以适应。或者,在其他布局上使用res/values-v11/
。但请注意,这仅适用于API Level 11 +。
如果您想要适用于所有API级别的内容,请执行以下操作:
首先,在activated
目录中使用一个定义一些新样式(例如<style name="activated" parent="android:Theme.Holo">
<item name="android:background">?android:attr/activatedBackgroundIndicator</item>
</style>
)扩展您的应用主题:
res/values/
然后,在<style name="activated">
</style>
中,将相同的样式定义为无操作:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:minHeight="?android:attr/listPreferredItemHeight"
style="@style/activated"
>
<ImageView android:id="@+id/flag"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|left"
android:paddingRight="4dip"
/>
<TextView android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|right"
android:textSize="5mm"
/>
</LinearLayout>
最后,将该样式应用于行布局:
{{1}}