相关疑难解决方法(0)

从ViewPager中检索片段

我使用的是ViewPager连同FragmentStatePagerAdapter主办三个不同的片段:

  • [片段1]
  • [Fragment2]
  • [Fragment3]

当我想Fragment1ViewPagerFragmentActivity.

有什么问题,我该如何解决?

android android-fragments android-viewpager

240
推荐指数
8
解决办法
15万
查看次数

在popBackStack之后,ViewPager中的片段未恢复

问题

从另一个片段返回后,片段不会重新附加到其宿主ViewPager.

情况

一个托管片段的活动,其布局包含ViewPager(PageListFragment在下面的示例中).ViewPager由FragmentStateViewPagerAdapter填充.托管内部托管的单个片段(PageFragment在下面的示例中)可以打开包含一组新页面的子页面列表.

行为

只要没有按下后退按钮,一切正常.一旦用户关闭其中一个子页面列表,就会重新创建先前的列表,但不会显示先前显示的页面.在父页面列表中的其他页面上滑动仍然有效.

可以在github上找到示例应用程序:

活动

public class MainActivity extends FragmentActivity {

private static final String CURRENT_FRAGMENT = MainActivity.class.getCanonicalName() + ".CURRENT_FRAGMENT";

public static final String ARG_PARENTS = "Parents";

public void goInto(String mHostingLevel, String mPosition) {
    Fragment hostingFragment = newHostingFragment(mHostingLevel, mPosition);
    addFragment(hostingFragment);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    addBaseFragment();
}

private void addBaseFragment() {
    Fragment hostingFragment = newHostingFragment("", "");
    addFragment(hostingFragment);
}

private Fragment newHostingFragment(String mHostingLevel, String oldPosition) {
    Fragment …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

56
推荐指数
2
解决办法
2万
查看次数

如何在ViewPager中重新创建所有片段:

我有这个问题,我有FragmentActivity一个ViewPager和一个ViewPagerAdapter.

在这个ViewPager中,我有3个Fragments,每个都包含一个TableLayout以编程方式使用a填充的2dArrayList.

单击FragmentActivity布局中的按钮,我过滤了数据,2dArrayList并且基本上需要Fragments使用新数据集重新创建所有3 (onCreateView在所有数据集中运行方法).

所以我onClickListener为这个按钮创建一个:

 private class SlicerSelectedOnClickListener implements OnClickListener {

    private ODSharedSlicer slicer;

    public SlicerSelectedOnClickListener(ODSharedSlicer slicer) {
        super();
        this.slicer = slicer;
    }

    public void onClick(View v) {
        String slicerValue = ((Button) v).getText().toString();
        Log.d(TAG,"Slicer value: "+ slicerValue +" chosen");
        application.currentReport.getODSharedSlicers().get(0).getSharedSlicerSelectedMemebers().add(slicerValue);

        ViewGroup parent = (ViewGroup) ((Button) v).getParent();

        for (int i = 0; i < parent.getChildCount(); i++) 
        {
            if ((parent.getChildAt(i) …
Run Code Online (Sandbox Code Playgroud)

android android-viewpager

15
推荐指数
2
解决办法
2万
查看次数