我使用的是ViewPager
连同FragmentStatePagerAdapter
主办三个不同的片段:
当我想Fragment1
从ViewPager
在FragmentActivity
.
有什么问题,我该如何解决?
从另一个片段返回后,片段不会重新附加到其宿主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) 我有这个问题,我有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)