2015-04-02 44 views
0

我有以下問題。如果搜索列表爲空,我想設置一個TextView。我在onCreateView這樣做是這樣的:是否可能從碎片中獲取視圖,而不是這個碎片的一部分?

View view = inflater.inflate(R.layout.fragment_list, container, false); 
    View empty = view.findViewById(R.id.fragment_list_empty); 
    this.mList.setEmptyView(empty); 

我有很多Fragments中,我將不得不添加此EmptyView,但有什麼辦法,以避免需要添加的同一段代碼(下文)每個片段的.xml:

 <TextView 
     android:id="@+id/fragment_list_empty" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="@string/empty_list" 
     android:textColor="@color/main_white"/> 

回答

1

您可以將視圖添加到片段容器上方中央的MainActivity中。

//MainActivity 

private TextView tvEmpty; 

public void onCreate(...){ 
    this.tvEmpty = (TextView) findViewById(R.id.NameOfEmptyTV); 
} 

public View getEmptyTv(){ 
    return this.tvEmpty; 
} 



//FRAGMENT 

public View onCreateView(...){ 
    this.mList.setEmptyView(((MainActivity)getActivity()).getEmptyTv()); 
} 

或者你可以創造出已經實現了這樣的方法

你自己的擴展片段