我在使用SlidingUpPanel(https://github.com/umano/AndroidSlidingUpPanel)和FragmentStatePagerAdapter時遇到問題。SlidingUpPanel使用FragmentStatePagerAdapter加載錯誤的面板
我在尋呼機中有3個片段:前兩個滑動面板(一個片段和一個硬編碼佈局),第三個沒有它。 當我有一個只有兩個片段的傳呼機時,面板工作得很好。現在我增加了三分之一,他們不再工作了。
首先片段創建正確,但是當我一直滑動到第三個,然後回來面板搞砸了。 基本上,以前在第一個片段上的面板現在在第二個面板上,第二個面板的硬編碼佈局現在不見了,第一個片段的面板是空的。
所有片段的主要內容仍然是正確的,並按照預期行事。
我畫的情況的模式更好地說明:
我的代碼來選擇,這個片段:
public Fragment getItem(int i) {
Fragment fragment = null;
switch (i) {
case 0:
fragment = new MatchListFragment();
break;
case 1:
fragment = new StreamFragment();
break;
case 2:
fragment = new PendingMatches();
break;
default:
break;
}
return fragment;
}
佈局第一片段(MatchListFragment):
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/container_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:gravity="center"
android:orientation="vertical"
android:visibility="visible">
CONTENT
</RelativeLayout>
<FrameLayout
android:id="@+id/scrollable_panel"
android:layout_width="match_parent"
android:layout_height="match_parent" />
佈局第二片段(StreamFragment)
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ListView
android:id="@+id/log_list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="false"
android:divider="@drawable/material_divider"
android:dividerHeight="1dp"
android:visibility="visible" />
</LinearLayout>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/scrollable_panel"
android:layout_width="match_parent"
android:layout_height="88dp"
android:background="@color/white"
android:gravity="center">
<ImageView
android:id="@+id/icon"
android:layout_width="match_parent"
android:layout_height="20dp"
android:layout_alignParentBottom="true"
android:background="@color/light_gray" />
<ImageView
android:layout_width="25dp"
android:layout_height="10dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_margin="5dp"
android:src="@drawable/green_pill" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@id/icon"
android:layout_alignParentTop="true"
android:orientation="horizontal">
<com.coffeestrap.android.Widgets.IconAndText
android:id="@+id/profile_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_weight="1"
app:resource="@drawable/ic_profile_icon"
app:undertext="New" />
<com.coffeestrap.android.Widgets.IconAndText
android:id="@+id/talk_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_weight="1"
app:resource="@drawable/ic_talk_icon"
app:undertext="Learning" />
<com.coffeestrap.android.Widgets.IconAndText
android:id="@+id/conversation_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_weight="1"
app:resource="@drawable/ic_conversation_icon"
app:undertext="Teaching" />
<com.coffeestrap.android.Widgets.IconAndText
android:id="@+id/all_switch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="4dp"
android:layout_weight="1"
app:resource="@drawable/ic_all_icon"
app:undertext="All" />
</LinearLayout>
</RelativeLayout>
我真的不能明白怎麼解決這個特別是因爲在第二個片段(StreamFragment())滑動面板佈局是硬編碼的,我不明白爲什麼它正確地加載其他所有內容並替換面板w從第一個片段(MatchListFragment)開始。