android:state_enabled =“false”时无法设置颜色

android:state_enabled =“false”时无法设置颜色,第1张

概述我有一个ListView,第一次显示它我想禁用它的一些项目. 为此我创建了这个textorange_selected.xml: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_enabled="false" android:color=" 我有一个ListVIEw,第一次显示它我想禁用它的一些项目.

为此我创建了这个textorange_selected.xml:

<selector xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:state_enabled="false"           androID:color="@color/medium_gray" />    <item androID:state_selected="true"        androID:color="@androID:color/white" />    <item androID:state_focused="true"        androID:color="@androID:color/white" />    <item androID:state_pressed="true"        androID:color="@androID:color/white" />    <item androID:color="@color/lighter_orange" /></selector>

我在一行的布局中使用它:

<relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"   androID:layout_height="20dp"   androID:gravity="left|center"   androID:layout_wIDth="wrap_content"   androID:paddingleft="5dp"   androID:paddingRight="5dp"   androID:background="@color/List_bg">    <ImageVIEw       androID:ID="@+ID/avatar"       androID:layout_wIDth="48dp"       androID:layout_height="48dp"       androID:layout_margintop="10dp"       androID:layout_alignParentleft="true" />    <linearLayout       androID:orIEntation="vertical"       androID:layout_wIDth="wrap_content"       androID:layout_height="48dp"       androID:layout_toRightOf="@+ID/avatar"       androID:layout_marginleft="10dp"       androID:layout_margintop="5dp">           <TextVIEw androID:ID="@+ID/Listitem1"               androID:layout_wIDth="wrap_content"               androID:layout_height="wrap_content"               androID:layout_margintop="2dp"               androID:textcolor="@drawable/textblack_selected"               androID:textSize="18dp"               androID:textStyle="bold" />           <TextVIEw androID:ID="@+ID/Listitem2"               androID:layout_wIDth="wrap_content"               androID:layout_height="wrap_content"               androID:layout_marginleft="40dp"               androID:textcolor="@drawable/textorange_selected" />    </linearLayout>    <ImageVIEw       androID:ID="@+ID/arrowImage"       androID:layout_wIDth="wrap_content"       androID:layout_height="wrap_content"       androID:layout_margintop="25dp"       androID:layout_alignParentRight="true"       androID:src="@drawable/arrow_selector" /></relativeLayout>

问题是它永远不会进入androID:state_enabled =“false”(应该是项目禁用的时刻,我将文本的颜色设置为灰色).

为了禁用这些项目,我在我的适配器中使用此代码:

@OverrIDepublic boolean areAllitemsEnabled() {                        return false;}@OverrIDepublic boolean isEnabled(int position) {    return position < 1;}

我的错误在哪里?

解决方法 Selector在分配给它的VIEw上使用值isEnabled(),在本例中为relativeLayout.它不会在适配器上调用isEnabled().

您将需要以下代码:

public VIEw getVIEw(int position,VIEw convertVIEw,VIEwGroup parent) {    relativeLayout v = (relativeLayout)LayoutInflater.from(parent.getContext())            .inflate(R.layout.Listitem_relativelayout,null);    if(postion < 1) v.setEnabled(false);
总结

以上是内存溢出为你收集整理的android:state_enabled =“false”时无法设置颜色全部内容,希望文章能够帮你解决android:state_enabled =“false”时无法设置颜色所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1127167.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存