在我的應用程序中,我有幾個不同的片段,不同的ListView
s,但對於所有他們我想使用相同的空視圖,所以我創建了一個單獨的佈局與空視圖,並將其添加到其他佈局使用使佈局可點擊
<include
android:id="@+id/empty"
layout="@layout/empty_view"/>
一切正常,但現在我試圖讓該視圖點擊所以當用戶點擊空的觀點,我可以重新加載ListView
,但我不能使它發揮作用。任何想法如何做到這一點?
這是我到目前爲止已經試過:
(empty_view.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true"
android:gravity="center">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="center"
android:src="@drawable/error_icon"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textColor="#929292"
android:textSize="24sp"
android:text="@string/empty_list_error"/>
</LinearLayout>
fragment_list.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:animateLayoutChanges="true">
<Spinner
android:id="@+id/spinner_filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginRight="@dimen/activity_vertical_margin"
android:layout_marginLeft="@dimen/activity_vertical_margin"
android:layout_gravity="center_horizontal"
android:visibility="gone"/>
<include
android:id="@+id/empty"
layout="@layout/empty_view"/>
<ProgressBar
android:id="@+id/loading_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:indeterminate="true"
style="@android:style/Widget.Holo.ProgressBar.Large"/>
<LinearLayout
android:id="@+id/list_header"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/primary_color"
android:padding="@dimen/activity_vertical_margin"
android:layout_below="@id/spinner_filter"
android:visibility="gone">
<TextView
android:layout_width="0dp"
android:layout_weight="5"
android:layout_height="wrap_content"
android:textColor="@color/white_90pct"
android:textAllCaps="true"
android:text="@string/subject_indicator"/>
<View
android:layout_width="1dp"
android:layout_height="15dp"
android:layout_gravity="center_vertical"
android:background="@color/light_color"/>
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:singleLine="true"
android:gravity="end"
android:textColor="@color/white_90pct"
android:textAllCaps="true"
android:text="@string/grade_indicator"/>
</LinearLayout>
<ListView
android:id="@+id/semesters_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@id/list_header"/>
</RelativeLayout>
Java類(onCreateView)
LinearLayout emptyView = (LinearLayout) view.findViewById(R.id.empty);
emptyView.setOnClickListener(this);
我也試過添加接下來屬性的XML,但仍然沒有工作:
android:focusableInTouchMode="true"
android:focusable="true"
android:descendantFocusability="blocksDescendants"
嘗試給予單個項目clickListener並檢查,如 'LinearLayout emptyView =(LinearLayout)view.findViewById(R.id.empty); emptyView.findViewById(R.id.emptyTextView).setOnClickListener(this); emptyView.findViewById(R.id.emptyImageView).setOnClickListener(this);' – Antrromet 2014-10-10 15:46:17
@Antrromet,我有點想避免這種情況,因此我需要添加更多的偵聽器,以便在空視圖佈局中添加更多視圖。這就是爲什麼我想在你的列表視圖中將整個視圖點擊爲'android:clickable =「true」'下的 – 2014-10-10 15:50:59
,設置'android:onClick =「test」'。然後在你的代碼中創建方法'test(View v){}',看看是否被調用。 (把東西放在裏面和斷點)。 Plus刪除此測試的任何編碼偵聽器 – Doomsknight 2014-10-10 15:51:22