gpt4 book ai didi

Android - 在 ViewPager 中替换 fragment 时返回堆栈

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:18:05 24 4
gpt4 key购买 nike

我正在创建包含三个 View 的 ViewPager。第一个 View 是一个 ListView,其中 onItemClick 用其中的 WebView 替换该 fragment 新 fragment 。我有两个问题:当添加 'transaction.addToBackStack(null)' 或 'transaction.setCustomAnimations(...)' fragment 时,WebView 会停止显示。如果没有这些行,它会显示,但我无法按“返回”按钮返回列表。

我正在根据 that tutorial 创建代码和 this SO question .在那个问题中使用了 PagerAdapter,而我使用的是 FragmentPagerAdapter。我也不需要更换更多的 fragment 。它只能是一次(从列表到 webView 再返回)。

这是我的适配器代码:

public Fragment getItem( int position )
{
Fragment fragment = null;
switch ( position )
{
case 0: // news
if ( mFragmentAtPos0 == null )
{
mFragmentAtPos0 = new NewsListFragment( new FirstPageFragmentListener()
{
@Override
public void onSwitchToNewsFragment( String url, ViewGroup container )
{
FragmentTransaction transaction = fm.beginTransaction();
transaction.setCustomAnimations( R.anim.rotate_in, R.anim.rotate_out, R.anim.rotate_in, R.anim.rotate_out );

WebViewFragment wv = new WebViewFragment( url, context );
transaction.replace( container.getId(), wv );
transaction.commit();

mFragmentAtPos0 = wv;
notifyDataSetChanged();
}
} );
}
fragment = mFragmentAtPos0;
break;
case 1:
fragment = new NewsInfoFragment( context, true );
break;
case 2:
fragment = new NewsInfoFragment( context, false );
break;
}
return fragment;
}

以及来自该列表 fragment 的 onCreateView() 的 fragment :

listView.setOnItemClickListener( new OnItemClickListener()
{
@Override
public void onItemClick( AdapterView<?> parent, View view, int position, long id )
{
if ( position < listNewsAdapter.getCount() - 1 )
{
if ( listener != null )
{
listener.onSwitchToNewsFragment( listNewsAdapter.getItem( position ).getNewsUrl(), container );
}
}
}
} );

最佳答案

查看我对上述问题的新回答:https://stackoverflow.com/a/11974777/685292

您可以在那里看到一个示例,说明如何通过您自己的 ViewPager 实现简单的反向堆叠,因为 addToBackStack(null)ViewPager 不起作用> fragment 。另请注意,关于您的问题的主要问题可能是缺少 getItemId(int position) 覆盖方法。

关于Android - 在 ViewPager 中替换 fragment 时返回堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com