gpt4 book ai didi

android - 如何在触摸时突出显示 ListView 项目?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:53:54 25 4
gpt4 key购买 nike

我有一个简单的 ListView,我希望其中的每个项目在用户触摸时突出显示。我认为这应该默认发生,但事实并非如此。你能给点建议吗?

ListView xml:

<ListView
android:id="@+id/list_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:divider="#206600"
android:dividerHeight="2dp"
android:smoothScrollbar="true"
android:background="#ffffff"
>
</ListView>

还有我的适配器代码:

private class MyAdapter extends ArrayAdapter<Task> {
private LayoutInflater mInflater;

public MyAdapter(Context context, int resource, List<Task> list) {
super(context, resource, list);
mInflater = LayoutInflater.from(context);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;

if (v == null) {
v = mInflater.inflate(R.layout.list_item, null);
}

Task task = taskList.get(position);

/* Setup views from your layout using data in Object here */

return v;
}

最佳答案

您可能想发布实际的行布局代码,但我怀疑问题在于您在列表行上设置了背景色。默认情况下,选择器绘制在列表项的后面(这样看起来更好,因为高亮颜色在文本后面)。要么不要在列表项上设置背景颜色,要么将其设置为在顶部绘制选择器,而不是使用 ListView 的 drawSelectorOnTop。 XML 属性。

编辑:如果您确实必须为默认状态设置不透明背景并且不想使用 drawSelectorOnTop,您也可以尝试这样做:在列表行上设置背景,但使用StateListDrawable 将 @android:drawable/list_selector_background 用于除默认状态之外的所有状态(您可以为此在 drawables 文件夹中定义一个 xml 文件;请参阅 StateList documentation )。

您还可以在外部背景行布局中嵌套一个布局,并将其背景设置为 @android:drawable/list_selector_background;这样背景就会绘制在您的背景之上,但在内容之下。

关于android - 如何在触摸时突出显示 ListView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5248210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com