0

我试图创建一个简单的列表视图,每行都有一些填充。

我以非常简单的方式完成了它,但我不确定这是否是正确的™ 方式。

这就是我得到的(代码如下)。正如您在点击一行时所看到的那样,它完全突出显示,我希望(如果可能)仅突出显示其中的视图(具有灰色背景的视图,即 TextView)

例子

这是活动布局的代码:

<?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="match_parent"
    android:orientation="vertical" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:divider="@null"
        android:dividerHeight="0dp" />

    <TextView
        android:id="@android:id/empty"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/no_events" />

</LinearLayout>

这是列表项布局的代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

    <TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:background="#ccc"
        android:text="placeholder" />

</FrameLayout>

感谢您的回复!

PS。我没有上传Activity,它是一个简单的ListActivity。

更新

已解决(感谢 Jorge Aguilar)。新代码是这样的:

项目清单:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:padding="10dp">

    <TextView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/text1"
        android:layout_width="fill_parent"
        android:layout_height="30dp"
        android:background="@drawable/event_focused"
        android:text="placeholder" />

</FrameLayout>

以事件为中心的文件(位于可绘制目录中):

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@android:color/black" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@android:color/darker_gray" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@android:color/darker_gray" /> <!-- hovered -->
    <item android:drawable="@android:color/darker_gray" /> <!-- default -->
</selector>

我还添加了这个:

android:listSelector="@android:color/transparent"

到我的 ListView :)

4

1 回答 1

3

好吧,您可以在 onitemselected 方法上添加一些代码,以通过 id 或类似的方式查找 textview,然后更改背景颜色。或者你想要什么不同的东西?

更新:

如果您需要从 xml 文件中更改它,也许这篇文章可以帮助您实现它。直接跳到最后一篇文章,希望你能在那里找到答案。

于 2012-08-01T23:01:18.757 回答