是否有可能从片段中获取View而不是此片段的一部分?

时间:2015-04-02 09:24:07

标签: android android-fragments android-listview android-view

我有以下问题。如果搜索列表为空,我想设置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 个答案:

答案 0 :(得分: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());
}

或者你可以创建自己的扩展片段,它已经实现了这样的方法