为此我创建了这个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”时无法设置颜色所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)