在列表视图中突出显示行的边框[重复]

Posted

技术标签:

【中文标题】在列表视图中突出显示行的边框[重复]【英文标题】:Highlighting border of the row in listview [duplicate] 【发布时间】:2013-09-11 06:33:34 【问题描述】:

我有一个可滚动的列表视图。我需要像 this 一样突出显示行的顶部和底部边框。作为新手告诉我该怎么做。提前致谢

【问题讨论】:

如果我的回答有帮助,请接受。 【参考方案1】:
android:listSelector="@drawable/list_selectorcolor"

在drawable中像这样创建

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:angle="90"
        android:endColor="#000000"
        android:startColor="#000000"
        android:type="linear"/>

    <stroke
        android:
        android:color="#800080"
        android:dashWidth="2dp"/>    

</shape>

【讨论】:

这是可行的,但我只需要视图顶部和底部的边框,而不是两侧的边框。你能告诉我我该怎么做吗 Stroke 可以在四个侧面,更好地创建像这样设置为背景而不是可绘制的图像【参考方案2】:

为drawable文件夹下列表视图的不同状态创建一个这样的选择器文件

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:drawable="@color/app_tint_pressed"
            android:state_selected="true"/>
      <item android:drawable="@color/app_tint_pressed"
             android:state_pressed="true" />

      <item android:drawable="@color/app_tint" />
</selector>

在 xml 中的 ListView 下像这样应用这个文件

android:listSelector = @drawable/myselector

对于不同的状态检查这个链接上的状态列表http://developer.android.com/guide/topics/resources/drawable-resource.html

在您的情况下,您也可以为不同的状态使用九个补丁图像和颜色,正常状态是黑色,对于按下状态,您可以创建一个带有黑色和您想要的边框的九个补丁图像,或者您可以在 xml 中创建它还有

<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle" >

<solid android:color="@android:color/white"/>

<stroke
    android:
    android:color="#800080"
    android:dashWidth="2dp"/>    

【讨论】:

这里对于 app_tint color 我需要在字符串文件中显示颜色代码啊?它显示错误 app tint color 在您的情况下将根据您的图像为黑色,因此您可以使用 #000000 或 @android:color/black 或者您可以在 values 文件夹下创建一个颜色文件并在那里定义颜色像我对字符串资源所做的那样引用它@color/app_tint,区别在于颜色是用颜色标签定义的。检查此链接***.com/questions/3769762/… 如果我只在 textview 周围而不是整行应用这个选择,你能告诉我如何为整行实现这个 它不应该以这种方式发生,但您可以尝试不同的方法,而不是在 listSelector 应用选择器文件,将文件作为背景应用到您用于的父视图(线性、相对等)您在自定义适配器中为每一行提供的布局文件 我解决了这个问题,因为我将布局宽度指定为 wrap_content 而不是 fill_parent。一旦我改变了我的错误就得到了解决。感谢您的帮助:-)【参考方案3】:

只需在 xml 文件的列表视图中添加以下详细信息

android:divider="#FF3366" android:dividerHeight="3dp"

【讨论】:

【参考方案4】:

根据你的代码试试这个

viewHolder.imageview.setText(entry.getString("calculator"));
        if(position % 2 == 0)
            viewHolder.linearLayout.setBackgroundResource(R.color.grey);

        
        else
            //viewHolder.linearLayout.setBackgroundResource(R.color.white);
        

它会改变行的颜色

【讨论】:

【参考方案5】:

将视图的背景设置为 xml 文件。在资源drawable中我们可以使用xml文件。检查 Api 演示可绘制文件夹。该 xml 文件包含此代码。

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

<item android:state_pressed="false"
    android:drawable="@drawable/button_image_in_normal_state" />

<item android:state_pressed="true"
    android:drawable="@drawable/button_image_in_pressed_state_with_border" />

</selector>

并在视图的背景中分配此 xml 文件名。

也可以参考这个link

【讨论】:

以上是关于在列表视图中突出显示行的边框[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在列表视图中突出显示特定位置

列表视图覆盖和突出显示列表视图项目

从列表视图中选择并突出显示项目

突出显示列表视图项

UWP 或 XAML 导航视图突出显示 [关闭]

达到屏幕限制后,突出显示矩形被放置在列表元素后面