其他分享
首页 > 其他分享> > 带有九个补丁项目背景问题的ListView

带有九个补丁项目背景问题的ListView

作者:互联网

警告:此问题中的XML是错误的,请在混淆之前阅读答案!

我已经在墙上撞了一段时间.以下帖子阐明了该主题,但未能解决我的问题:Android ListView State List not showing default item backgroundListView item background via custom selector

当我选择列表项时,正确的九个补丁背景可以完美显示,但是我无法获得默认的九个补丁背景来初始显示.在我看来,我需要以某种方式设置默认项目背景,但是我不知道该如何设置.

列表显示:

<?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="fill_parent"
  android:orientation="vertical">
  <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/shopListHeader"
    />
  <ListView
    android:id="@+id/shopList"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:dividerHeight="0px"
    android:divider="#FFFFFFFF"
    android:listSelector="@drawable/shop_list_selector"
    />
</LinearLayout>

选择:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:visible="true">

    <!-- the list items are enabled and being pressed -->
    <item
        android:state_pressed="true"
        android:drawable="@drawable/shop_list_item_pressed" />

    <item
        android:state_selected="true"
        android:textColor="#FFFFFFFF" />
</selector>

背景:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
  android:visible="true">

    <item
      android:state_selected="true"
      android:drawable="@android:color/transparent" />

    <item
        android:drawable="@drawable/shop_list_item" />
</selector>

如您所见,我已经从参考文献中精简了示例.

您可能还会注意到,没有在任何地方引用Background选择器.我开始在随机的地方扔它(如果应用程序编译了添加内容,则没有效果或导致强制关闭)

我还尝试过在选择但未按下某个项目时阻止文本的颜色变为黑色和灰色(可以通过滚动列表来完成).由于我的背景在中间为黑色,因此选中该文本后,该文本将变得部分不可见.据我所知,该加法(选择器中的最后一个项目节点)没有任何作用.

有没有人想让这种耗时的功能正常工作?

解决方法:

我打算删除该线程,但是我不能,所以我来看看是否不能将其用作不执行操作的示例:)

首先,在ListView XML中:android:listSelector =“ @ drawable / shop_list_selector”
不要那样做!

我在这里试图做的是设置列表项的背景,而android:background属性不起作用.您可能已经注意到XML项丢失了,这是因为我脑海中没有XML了! (在我为解决这个“问题”而付出的无数小时中,我从未碰过它.)因此,行android:background =“ @ drawable / shop_list_selector”出现在该项目的属性中,并且所有内容都是古怪的. (请记住上面的XML是非常错误的,所以不要使用它!)

…嗯,除了它在现实生活中看起来不如我脑子里的好:(
回到绘图板!!!

标签:nine-patch,android-selector,android,android-listview
来源: https://codeday.me/bug/20191011/1892164.html