gpt4 book ai didi

android - android :state_enabled ="false"时无法设置颜色

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:06:10 27 4
gpt4 key购买 nike

我有一个 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"(那应该是项目被禁用并且我将文本颜色设置为灰色的时刻)。

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

@Override
public boolean areAllItemsEnabled() {
return false;
}

@Override
public boolean isEnabled(int position) {
return position < 1;
}

我的错误在哪里?

最佳答案

选择器在分配给它的 View 上使用值 isEnabled(),在本例中为 RelativeLayout。它不会调用 Adapter 上的 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 - android :state_enabled ="false"时无法设置颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11341088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com