J'ai ajouté un "pull to refresh" à ma listView, je voulais également ajouter une vue vide lorsque la liste est vide - Maintenant j'ai eu cette erreur. Comment puis-je faire ce travail? si je positionne une vue en dehors de swipeRefresh et que je l'ajoute en tant que emptyView, cela fonctionnera. Alors, comment je le fais avec un fichier XML externe ..?SwipeRefreshLayout ne peut héberger qu'un seul enfant direct
Le code 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;
J'ai été confronté au même problème et j'ai trouvé que vous n'utilisiez qu'un seul listview qui est un enfant seulement et c'est très bien mais vous pourriez cacher sa visibilité, c'est ce que je faisais à ma fin –