SwipeRefreshLayout只能托管一个直接子代
作者:互联网
我在listView中添加了一个“拉动刷新”,当列表为空时,我还想添加一个空视图-现在出现此错误.我该如何工作?如果我将视图放置在swipeRefresh之外,然后将其添加为emptyView,它将起作用.那么,如何使用外部xml文件呢?
xml代码:
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeRefreshLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true" >
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:clipToPadding="false"
android:paddingBottom="@dimen/inbox_vertical_margin" ></ListView>
</android.support.v4.widget.SwipeRefreshLayout>
onCreateView:
View rootView = inflater.inflate(R.layout.fragment_inbox, container,
false);
View empty = inflater.inflate(R.layout.empty_message_list, container,
false);
ListView mListView = (ListView) rootView
.findViewById(android.R.id.list);
((ViewGroup) mListView.getParent()).addView(empty);
TextView textViewToChange = (TextView) empty
.findViewById(R.id.welcomeMessage);
textViewToChange.setText("YO "
+ ParseUser.getCurrentUser().getString(
ParseConstants.KEY_PRESENTING_USERNAME)
+ "! bad news.. :(");
mListView.setEmptyView(empty);
mSwipeRefreshLayout = (SwipeRefreshLayout) rootView
.findViewById(R.id.swipeRefreshLayout);
mSwipeRefreshLayout.setOnRefreshListener(mOnRefreshListener);
mSwipeRefreshLayout.setColorScheme(R.color.swipeRefresh1,
R.color.swipeRefresh2, R.color.swipeRefresh3,
R.color.swipeRefresh4);
return rootView;
解决方法:
SwipeRefreshLayout应该是XML文件中的父级.
您可以将FrameLayout用作SwipeRefreshLayout的子级. ListView和TextView(或任何其他空状态视图)可以是FrameLayout的子视图.
标签:android,xml,setcontentview 来源: https://codeday.me/bug/20191010/1887270.html