2

我为我的 ListView 行自定义视图使用以下布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:duplicateParentState="false"
        android:clickable="false"    
        android:id="@+id/header"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal" >
        <!-- A lot of text views -->
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"     
        android:minHeight="48dp" >
        <!-- A lot of text views -->
    </LinearLayout>

</LinearLayout>

通过使用android:duplicateParentState="false"and android:clickable="false",我希望在header单击列表视图行时不会突出显示 LinearLayout 。

但是,它仍然被突出显示。我可以知道如何使headerLinearLayout 不突出显示吗?

4

2 回答 2

2

消除视觉突出显示的一种方法是将header' 背景可绘制对象更改为对于所有相关状态(例如和无StateListDrawable)具有相同可绘制对象(例如纯色)的对象。state_pressed

于 2013-04-23T07:41:53.823 回答
0

将您的标题视图分离到新的 xml。然后在你的活动/片段中膨胀这个视图并调用addHeaderView(view, null, false);它(第三个参数是布尔 isSelectable)。

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View header = inflater.inflate(R.layout.header, null,false); 
getListView().addHeaderView(view, null, false);
于 2013-04-23T07:59:26.617 回答