【发布时间】:2012-04-27 02:50:04
【问题描述】:
我在设置列表视图项中的点击事件时遇到问题。
这是列表在默认情况下的显示方式:
这是当我按下红色图像时的样子(红色变成蓝色):
这是当我按下列表项时:
如你所见,红色图像也变成了蓝色,即使我没有按下按钮。我想要的是,当我按下列表项时,红色图像没有变化,并且保持不变。
我尝试将android:drawSelectorOnTop="true" 添加到列表视图部分的 xml 文件中,但没有成功。我也尝试使用选择器参数修复它,但仍然没有成功。
我上传了一些代码,接下来的部分在不同的xml文件中,所以不要混淆。
编辑:我想在android:listSelector 中使用操作系统项目列表背景颜色而不是我自己的颜色,因为我已经这样做了。
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:drawable="@color/blue" />
<item android:drawable="@color/red"/>
</selector>
-----------新文件---------- ----------
<ListView android:id="@+id/list_theme"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_above="@id/contbtn_themelist"
android:stackFromBottom="false"
android:transcriptMode="disabled"/>
-----------新文件---------- ----------
<RelativeLayout android:id="@+id/edit_back"
android:layout_width="80dp"
android:layout_height="77dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_alignParentBottom="true"
android:background="@drawable/edit_skin_selector2" >
<ImageView
android:id="@+id/skinEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:scaleType="fitXY"
android:src="@android:drawable/ic_menu_edit"
android:layout_centerInParent="true" />
</RelativeLayout>
编辑: row.xml
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:paddingBottom="5dip"
android:paddingLeft="2dip"
android:paddingRight="2dip"
android:paddingTop="5dip" >
<ImageView
android:id="@+id/itemlist_checkedd"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:adjustViewBounds="true"
android:src="@drawable/ic_checkitem" />
<ImageView
android:id="@+id/skinpreview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toRightOf="@id/itemlist_checkedd"
android:scaleType="fitXY" />
<RelativeLayout android:id="@+id/edit_back"
android:layout_width="60dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:background="@drawable/edit_skin_selector2"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true">
<ImageView
android:id="@+id/skinEdit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@android:drawable/ic_menu_edit"
android:layout_centerInParent="true" />
</RelativeLayout>
<ImageView
android:id="@+id/separator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginRight="5dip"
android:layout_toLeftOf="@id/edit_back"
android:src="@drawable/separator" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginLeft="2dip"
android:layout_marginRight="15dip"
android:layout_toLeftOf="@id/separator"
android:layout_toRightOf="@id/skinpreview"
android:textAppearance="?android:attr/textAppearanceLarge" />
</RelativeLayout>
任何帮助都会很棒,谢谢。
【问题讨论】:
-
所以你想要的是,如果用户点击列表项然后动作发生但红色图像没有变成红色,如果用户点击红色图像然后它变成红色和动作发生。我对吗 ?请回复此问题,以便我为您提供帮助。
-
@iDroid Explorer 基本上你是对的,唯一的区别是如果红色变成什么东西,它会不同于红色。另一件事,我想使用操作系统列表项的颜色,意思是某些系统中的橙色和其他系统中的蓝色。谢谢。
-
@Ok 然后等待我的回答。让我知道你在这方面取得了多大的成功?
-
请同时放入您用于对行项目进行膨胀的row.xml文件。
-
如果您想对图像使用默认操作系统列表项颜色而不是红色,则使用“@android:drawable/list_selector_background”作为该图像的背景。
标签: android android-layout android-listview selector