Android的ListView中虚线分隔

Android的ListView中虚线分隔

本文介绍了Android的ListView中虚线分隔的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想画虚线分隔为ListView。但我失败了。有在计算器几个类似的问题,但他们没有固定我的问题。

下面是我创建虚线分隔的步骤:


  • 创建list_divider.html

    < XML版本=1.0编码=UTF-8><层列表的xmlns:机器人=htt​​p://schemas.android.com / APK / RES / Android的> <项目>
        <形状机器人:形状=行>
            <中风
                机器人:颜色=#FF0000
                机器人:dashWidth =10px的
                机器人:dashGap =10px的/>
        < /形状>
    < /项目> < /层列表>


  • 我的布局包含列表视图

     < ListView控件
        机器人:layout_width =WRAP_CONTENT
        机器人:layout_height =WRAP_CONTENT
        机器人:ID =@机器人:ID /列表
        机器人:layout_gravity =CENTER_HORIZONTAL
        机器人:footerDividersEnabled =真
        机器人:分=@绘制/ list_divider
        机器人:dividerHeight =1px的/>


然后在UI编辑器中的preVIEW,就像它的工作原理:


  • 3.But不幸它不会在模拟器上工作:

任何人都可以给我一个提示?谢谢你。

P.S:我使用层列表的原因是,我可能需要绘制两行的未来。


解决方案

其记录在这里:的

您有2个选项:


  • 关闭硬件加速:的android:hardwareAccelerated =FALSE

  • listView.setLayerType(View.LAYER_TYPE_SOFTWARE,空)或XML 的android:layerType =软件

这让我太头疼!

I'd like to draw dashed dividers for the listview. But I failed. There are a few similar questions in StackOverflow, but none of them fixed my problem.

Here are the steps I create the dashed divider:

  • Create a list_divider.html

    <?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item>
        <shape android:shape="line">
            <stroke
                android:color="#ff0000"
                android:dashWidth="10px"
                android:dashGap="10px" />
        </shape>
    </item> </layer-list>
    

  • My layout contains the list view

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@android:id/list"
        android:layout_gravity="center_horizontal"
        android:footerDividersEnabled="true"
        android:divider="@drawable/list_divider"
        android:dividerHeight="1px"/>
    

Then in the preview inside the UI editor, it's like it works:

  • 3.But unfortunate it doesn't work in emulator:

Can anybody give me a hint? Thanks.

P.S.: The reason I'm using layer-list is that I may need to draw 2 lines in the future.

解决方案

Its documented here: https://code.google.com/p/android/issues/detail?id=29944

You have 2 options:

  • turn off hardware acceleration: android:hardwareAccelerated="false"
  • or: listView.setLayerType(View.LAYER_TYPE_SOFTWARE, null) or xml android:layerType="software"

It gave me too a headache!

这篇关于Android的ListView中虚线分隔的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

09-02 19:22