Когда во время обновления переключать фрагмент с помощью SwipeRefreshLayout, фрагмент зависает, но на самом деле все еще работает

ОБНОВЛЕНИЕ: я думал, что это работало правильно. Но после некоторого испытания проблема все еще существует * нюхать *

Затем я сделал более простую версию, чтобы увидеть, что именно происходит, и узнал, что освежающий фрагмент, который должен был быть отсоединен, все еще там. Или, точнее, вид старого фрагмента, оставленного там,на вершине новый фрагмент. Поскольку фон RecyclerView моего исходного приложения не прозрачен, оказалось, что я говорил раньше.

КОНЕЦ ОБНОВЛЕНИЯ

у меня естьMainActivity с макетом, как это:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:id="@+id/drawer_layout"
android:layout_width="match_parent" android:layout_height="match_parent">

    <!-- As the main content view, the view below consumes the entire
         space available using match_parent in both dimensions. -->
    <FrameLayout android:id="@+id/container" android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- android:layout_gravity="start" tells DrawerLayout to treat
         this as a sliding drawer on the left side for left-to-right
         languages and on the right side for right-to-left languages.
         If you're not building against API 17 or higher, use
         android:layout_gravity="left" instead. -->
    <!-- The drawer is given a fixed width in dp and extends the full height of
         the container. -->
    <fragment android:id="@+id/navigation_drawer"
        android:layout_width="@dimen/navigation_drawer_width" android:layout_height="match_parent"
        android:layout_gravity="start" tools:layout="@layout/fragment_navigation_drawer" />

</android.support.v4.widget.DrawerLayout>

ФрагментContentView Я использую, чтобы заполнить@id/container настроен как:

<android.support.v4.widget.SwipeRefreshLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/contentView"
android:layout_width="match_parent"
android:layout_height="match_parent">

<android.support.v7.widget.RecyclerView
    android:id="@+id/tweet_list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/grey_300"/>

</android.support.v4.widget.SwipeRefreshLayout>

И вотonCreateView() изContentView

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View inflatedView = inflater.inflate(R.layout.fragment_content, container, false);

    mRecyclerView = (RecyclerView) inflatedView.findViewById(R.id.tweet_list);
    mRecyclerView.setHasFixedSize(false);

    mLinearLayoutManager = new LinearLayoutManager(getActivity().getApplicationContext());
    mRecyclerView.setLayoutManager(mLinearLayoutManager);

    mTweetList = new ArrayList<Tweet>;
    mAdapter = new TweetAdapter(mTweetList);
    mRecyclerView.setAdapter(mAdapter);
    mRecyclerView.setItemAnimator(new DefaultItemAnimator());

    mSwipeRefreshLayout = (SwipeRefreshLayout) inflatedView.findViewById(R.id.contentView);
    mSwipeRefreshLayout.setOnRefreshListener(
        ...
    );
    return inflatedView;
}

Затем вMainActivity Я переключаю контент для отображения, переключая разныеContentView, Все выглядит хорошо, за исключением одного: когда я переключаюсьContentView фрагменты ВО ВРЕМЯ обновляются с помощью навигационной панели, затем содержимое останавливается. Но на самом деле все работает как обычно, за исключением того, что вы не видите этого.

Ответы на вопрос(8)

Ваш ответ на вопрос