Android ListView 滚动时背景样式问题

发布于 2024-11-09 15:24:56 字数 1603 浏览 0 评论 0原文

我需要设置 ListView 的样式,但不明白为什么滚动时它会变成黑色背景。我在 LinearLayout 中有 ListView,并且该布局将背景设置为图像。

这就是我对 ListView 的看法:

<style name="MyListView" parent="@android:style/Widget.ListView">
        <item name="android:listSelector">@drawable/selector_list_item</item>
    </style>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:state_focused="true"
          android:drawable="@drawable/shape_list_item_normal" />
    <item android:state_pressed="true"
          android:drawable="@drawable/shape_list_item_pressed" />
    <item android:state_focused="true"
          android:drawable="@drawable/shape_list_item_normal" />
</selector>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient android:startColor="#80ffffff" android:endColor="#80eff3ef" android:angle="45" />
    <padding android:left="5dip" android:right="5dip" android:top="7dip" android:bottom="7dip"/>
</shape>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient android:startColor="#80808080" android:endColor="#80eff3ef" android:angle="45" />
    <padding android:left="5dip" android:right="5dip" android:top="7dip" android:bottom="7dip"/>
</shape>

当我应用 MyListView 样式时,我没有看到太多事情发生。当我单击项目时 - 是的,我看到渐变。当 ListView 稳定时 - 我看到背景应该来自父布局。当我滚动时 - 我看到黑色背景,它正在擦除父母的背景。如果我知道如何用其他东西来设置它,我会同意的。

I need to style ListView and can't figure out why It turns to black background when scroll.. I have ListView inside LinearLayout and that layout has Background set to image.

This is what I have for ListView:

<style name="MyListView" parent="@android:style/Widget.ListView">
        <item name="android:listSelector">@drawable/selector_list_item</item>
    </style>

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:state_focused="true"
          android:drawable="@drawable/shape_list_item_normal" />
    <item android:state_pressed="true"
          android:drawable="@drawable/shape_list_item_pressed" />
    <item android:state_focused="true"
          android:drawable="@drawable/shape_list_item_normal" />
</selector>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient android:startColor="#80ffffff" android:endColor="#80eff3ef" android:angle="45" />
    <padding android:left="5dip" android:right="5dip" android:top="7dip" android:bottom="7dip"/>
</shape>

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <gradient android:startColor="#80808080" android:endColor="#80eff3ef" android:angle="45" />
    <padding android:left="5dip" android:right="5dip" android:top="7dip" android:bottom="7dip"/>
</shape>

When I apply MyListView style I don't see much happening. When I click on item - yes, I see gradient. When ListView stable - I see background as it should be from parent layout. When I scroll - I see black background, it's erasing parent's background. And I would be fine with that if I knew how to set it with something else..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

誰ツ都不明白 2024-11-16 15:24:56

在listView的xml中使用以下属性:

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

Use the following property in the xml of listView:

android:cacheColorHint="@android:color/transparent"
梅窗月明清似水 2024-11-16 15:24:56

在列表视图的 xml 中尝试以下代码行:

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

Try this line of code in the xml of your listview:

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

叫嚣ゝ 2024-11-16 15:24:56

如果您需要在 PreferenceActivity 中使用透明的 ListView,请尝试使用主题

<resources>

    <style name="MyPreferencesTheme">
        <item name="android:scrollingCache">false</item>
    </style>

</resources>

并将该主题放入您的 AndroidManifest.xml

<activity 
    android:name="YourActivity" 
    android:theme="@style/MyPreferencesTheme">
</activity>

If you require transparent ListView in a PreferenceActivity, try using a theme with

<resources>

    <style name="MyPreferencesTheme">
        <item name="android:scrollingCache">false</item>
    </style>

</resources>

And put the theme in your AndroidManifest.xml

<activity 
    android:name="YourActivity" 
    android:theme="@style/MyPreferencesTheme">
</activity>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文