使用查看器页面在两个片段之间切换 - 但是切换到片段后它会消失
Using viewer page to switch between two fragments - however it disappears after switching into a fragment
我的查看器页面有问题,因此在我拥有的这个从 Fragment 扩展的 java 文件中有一些代码与查看寻呼机有关。基本上在我的屏幕上,我想让用户向右滑动交叉并向左滑动。它工作正常,但我正在处理的项目中也有其他片段,所以如果我转到另一个片段并返回到这个让我可以执行滑动功能的屏幕,突然间一切都从屏幕。知道如何解决这个问题吗??
这是java文件;
public class ExampleFragment extends Fragment {
View v;
ViewPager viewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.tab2_main, container, false);
viewPager = (ViewPager)v.findViewById(R.id.accountswitching);
AccountSwitching accountSwitching = new AccountSwitching(getFragmentManager());
viewPager.setAdapter(accountSwitching);
这是我在 AccountSwitching 中的代码 java class;
public class AccountSwitching extends FragmentPagerAdapter {
public AccountSwitching(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FirstPage();
case 1:
return new SecondPage();
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
因此,正如您在我附在这张 post 上的图片上看到的那样,上面写着“你好”,我在 FirstPage 中有一个 onclick。 java 文件
第一页。 java 文件;
public class FirstPage extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.home_screenmain_first, container, false);
v.findViewById(R.id.first).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
android.support.v4.app.FragmentTransaction transaction = getFragmentManager().beginTransaction();
((FrameLayout)getActivity().findViewById(android.R.id.tabcontent)).removeAllViews();
transaction.replace(android.R.id.tabcontent, new ChangeScreen(), "ChangeScreen");
transaction.commit();
}
});
return v;
}
}
return v;
}
}
这是屏幕显示来自查看器页面的内容 Example of what I am seeing before switching between fragments
这是我在片段之间切换后看到的After switching between fragments
如果您想查看任何其他代码,请告诉我,但不确定要将哪个代码发送到这里,这就是我没有在这里分享的原因。
看起来您正在片段内创建 ViewPager。
在这种情况下 getFragmentManager()
应该是 getChildFragmentManager()
。
我的查看器页面有问题,因此在我拥有的这个从 Fragment 扩展的 java 文件中有一些代码与查看寻呼机有关。基本上在我的屏幕上,我想让用户向右滑动交叉并向左滑动。它工作正常,但我正在处理的项目中也有其他片段,所以如果我转到另一个片段并返回到这个让我可以执行滑动功能的屏幕,突然间一切都从屏幕。知道如何解决这个问题吗??
这是java文件;
public class ExampleFragment extends Fragment {
View v;
ViewPager viewPager;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.tab2_main, container, false);
viewPager = (ViewPager)v.findViewById(R.id.accountswitching);
AccountSwitching accountSwitching = new AccountSwitching(getFragmentManager());
viewPager.setAdapter(accountSwitching);
这是我在 AccountSwitching 中的代码 java class;
public class AccountSwitching extends FragmentPagerAdapter {
public AccountSwitching(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
switch (i){
case 0:
return new FirstPage();
case 1:
return new SecondPage();
}
return null;
}
@Override
public int getCount() {
return 2;
}
}
因此,正如您在我附在这张 post 上的图片上看到的那样,上面写着“你好”,我在 FirstPage 中有一个 onclick。 java 文件
第一页。 java 文件;
public class FirstPage extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.home_screenmain_first, container, false);
v.findViewById(R.id.first).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
android.support.v4.app.FragmentTransaction transaction = getFragmentManager().beginTransaction();
((FrameLayout)getActivity().findViewById(android.R.id.tabcontent)).removeAllViews();
transaction.replace(android.R.id.tabcontent, new ChangeScreen(), "ChangeScreen");
transaction.commit();
}
});
return v;
}
}
return v;
}
}
这是屏幕显示来自查看器页面的内容 Example of what I am seeing before switching between fragments
这是我在片段之间切换后看到的After switching between fragments
如果您想查看任何其他代码,请告诉我,但不确定要将哪个代码发送到这里,这就是我没有在这里分享的原因。
看起来您正在片段内创建 ViewPager。
在这种情况下 getFragmentManager()
应该是 getChildFragmentManager()
。