我正在尝试创建一个与Snapchat相似的框架,我有三个可以刷过的屏幕。我有三个屏幕(每个屏幕都有一个片段),并希望在按下按钮时滑到屏幕上。为了清楚起见,我在一个屏幕上有一个表,可以从中单击一行,并且具有一个调用onClick()的函数。我希望使用上述功能滑动到所需的片段。
Fragment.Java:
public class ChatFragment extends Fragment {
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.chat_fragment_layout, container, false);
rootView.findViewById(R.id.row0).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
openfrag("1");
}
});
rootView.findViewById(R.id.row1).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
openfrag("2");
}
});
rootView.findViewById(R.id.row2).setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
openfrag("3");
}
});
return rootView;
}
private void openfrag(String number){
}
我使用扩展FragmentPagerAdapter的PagerAdapter来浏览片段:
public class PagerAdapter extends FragmentPagerAdapter {
public PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int arg0) {
switch (arg0) {
case 0:
return new MessageFragment();
case 1:
return new ChatFragment();
case 2:
return new CameraFragment();
default:
break;
}
return null;
}
@Override
public int getCount() {
return 3;
}
我已经尝试过使用fragmentmanager的替换方法,但这不是我想要的,我希望它像我刷到那个片段一样。 谢谢你的帮助。
答案 0 :(得分:0)
您可以使用这个给定的代码
String tag = "android:switcher:" + R.id.pager + ":" + 0;
AddStudentFragment f = (AddStudentFragment) getActivity().getSupportFragmentManager().findFragmentByTag(tag);
String tag1 = "android:switcher:" + R.id.pager + ":" + 1;
AssignSubjectFragment a = (AssignSubjectFragment) getActivity().getSupportFragmentManager().findFragmentByTag(tag1);
答案 1 :(得分:0)
我设法让它在onCreate方法之外的MainActivity类中添加一小部分。每当您需要切换到寻呼机中的另一个片段时,只需使用项索引和真/假调用此函数,具体取决于您是否希望它平滑滚动。
public void setCurrentItem (int item, boolean smoothScroll) {
mViewPager.setCurrentItem(item, smoothScroll);
}