- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将自定义选择器设置为 ListView。它在较新的设备上运行良好,但不适用于较低版本的设备。我希望 ListView 选定的项目保持突出显示。
请帮忙。
提前致谢。
ListView.xml
<?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="@+id/listViewBell"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:cacheColorHint="#00000000"
android:choiceMode="singleChoice"
android:divider="#b5b5b5"
android:dividerHeight="1dp"
android:listSelector="@drawable/list_selector_color" >
</ListView>
</LinearLayout>
list_selectror_color.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="@color/list_selector" />
<stroke
android:dashWidth="2dp"
android:width="1dp"
android:color="@color/white" />
</shape>
我也试过选择器但没有任何反应
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/list_selector_color" android:state_pressed="true"/>
<item android:drawable="@drawable/list_selector_color" android:state_focused="true"/>
<item android:drawable="@drawable/list_selector_color" android:state_selected="true"/>
<item android:drawable="@drawable/list_selector_normal"/>
</selector>
这是我的自定义适配器 getView 方法
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) mContext
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.listview_bell_items, parent,
false);
ImageView imageview = (ImageView) convertView
.findViewById(R.id.list_bell_image);
imageview.setImageResource(mDataImage[position]);
TextView textview = (TextView) convertView
.findViewById(R.id.txt_bell_title);
textview.setText(mDataText[position]);
return convertView;
}
最佳答案
我遇到了类似的问题。抱歉,无法发表评论,所以我发布了一个可能的答案。
删除 android:listSelector="@drawable/list_selector_color"
来自您的属性(property) ListView
声明
在你的R.layout.listview_bell_items
为根布局指定自定义选择器。例如,如果您的列表项的根布局是 RelativeLayout
,尝试:
<RelativeLayout ... android:background="@drawable/listitem_selector">...
这同样适用于任何其他类型的布局。
如果这仍然没有给您想要的结果,请提供更多详细信息。
更新好的,如果没有其他帮助,您的问题有一个临时的脏解决方法。我不明白为什么它不起作用。
引入一个selectedPos 变量来保存当前选中的项目。
private class MyAdapter extends .../*your base adapter*/ {
private static final int NOT_SELECTED = -1;
private int selectedPos = NOT_SELECTED;
// if called with the same position multiple lines it works as toggle
public void setSelection(int position) {
if (selectedPos == position) {
selectedPos = NOT_SELECTED;
} else {
selectedPos = position;
}
notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position == selectedPos) {
// your color for selected item
view.setBackgroundColor(Color.parseColor("#000000"));
} else {
// your color for non-selected item
view.setBackgroundColor(Color.parseColor("#FFFFFF"));
}
return view;
}
}
现在,在创建并设置 ListView
后添加以下代码的适配器:
final MyAdapter adapter = new MyAdapter(...);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
adapter.setSelection(position);
}
});
关于Android ListView listSelector 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22422196/
我有一个像这样的列表选择器的简单列表。 如您所见 android:listSelector="#99000000"但“黑色 alpha”颜色应用于整个列表,而不是所选项目。 这就是我现在拥有的,但
我阅读了很多关于 ListSelector 和选择器的内容。但我无法弄清楚如何让 ListView 的项目在被按下后具有不同的颜色。 在双 fragment 布局中,用户在左侧 ListView 中单
图片显示问题:Venus项目已滚动,但它的选择是可见的。 我看过 Hanged listSelector in ListView我正在按照建议使用形状/渐变,但仍然没有运气。 设备:适用于 Andro
我正在尝试将自定义选择器设置为 ListView。它在较新的设备上运行良好,但不适用于较低版本的设备。我希望 ListView 选定的项目保持突出显示。 请帮忙。 提前致谢。 ListView.xml
我正在尝试了解如何为我的 listView 设置自定义 listSelector。该代码或多或少是从适用于 stackoverflow 中的其他人的解决方案中复制和粘贴的,但它不适用于我。 当我打开
我现在已经复习了几个 SO 答案 Android listselector not visible in custom listview ListView item background via cu
我的 listSelection 有一个自定义可绘制对象。当我选择一个项目时,它会被选中。但是当我滚动浏览其他项目(向上/向下滚动)时选择,背景会闪烁,有时它也会消失。 我包括我的 xml 布局: L
我有这样的自定义列表选择器: 和我的 ListView : 我的问题是,当我不点击 listview 时,listview 项目不使用聚焦状
我正在使用 android:listSelector 实现 ListView @color/transparent @drawable/divider 1px @co
出于某种原因,我在模拟器中的 gridview 的列边框周围没有额外的空间,但我发现我的真实设备 (Galaxy S) 中的额外像素。所以我想试试: android:listSelector="@nu
我在使用此 ListView 时遇到了一个小问题: 其中包含此布局: EDIT2:尽可能简化问题: 当我选择列表中的一个元素时,它会由于 android:listSele
下面的代码是我用来在我的应用程序中创建 GridView 的代码。但问题是列表选择器的宽度和高度不等于图标的宽度和高度(图 1)。图片 #2 是我想要完成的。 最佳答案 尝试使用 android:li
我创建了一些可绘制对象来处理 ListView 项的状态颜色等。当我在布局的列表定义中为它们设置 android:listSelector 属性时,这些工作。但是,我想在全局范围内应用它们,所以在我的
重现步骤 - 这发生在 Android 4.2.2 上 - 我没有看到它发生在 Android 4.2.1 上 回答几个问题,退出应用 返回应用 选择一个问题集 - 它是 holo_LIGHT_blu
我正在尝试在免触摸设备上为我的 RecyclerView 网格实现一个列表选择器。我的实现工作正常,但它需要 notifyItemChanged() 方法,这在性能方面并不高效。我有一个包含 100
我正面临这个问题,这让我抓狂。我有以下适配器代码: private class ListAdaptor extends ArrayAdapter { private ArrayList
你好我想在从下面的微调器中选择列表项时将默认的橙色更改为红色是我的代码 要将文本放在微调器列表的中间并删除选择中的单选按钮,我已经制作了自定义适配器 ArrayAdapter adapter =
我是一名优秀的程序员,十分优秀!