【发布时间】:2018-07-18 06:59:08
【问题描述】:
我的应用程序中有ActivityTwo。当打开ActivityTwo 时,我将其布局替换为新的fragment,其中使用Viewpager 设置了3 个Tabs。
这是ActivityTwo onCreate 中的代码,用于在打开 ActivityTwo 时立即调用 Fragment。
fm = getSupportFragmentManager();
String add = "";
ft = fm.beginTransaction();
ft.replace(R.id.frame, new ChooseTab(), add);
ft.commit();
当从其他片段单击按钮时,我再次调用具有我的TabView 的相同片段,但这次我想将选项卡位置设置为第二个选项卡。这是从另一个片段替换 TabView 片段的代码
freeTable.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Confirmation.");
builder.setMessage("Are you sure to Free this Table ?");
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
freeSingleTable();
alertMsg.successMessage(infoTable,"Table Free Successfully.");
ChooseTab chooseTab=new ChooseTab();
tx = fm.beginTransaction();
tx.replace(R.id.frame,chooseTab);
tx.commitAllowingStateLoss();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
builder.show();
}
});
这是选择标签片段的代码,它有我的 3 个标签
public class ChooseTab extends Fragment {
// Tab Layout and ViewPager
TabLayout tabLayout;
ViewPager viewPager;
public ChooseTab() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View v=inflater.inflate(R.layout.choose_tab, container, false);
//-----------------------------------------------------------------------------------
tabLayout=(TabLayout)v.findViewById(R.id.simpleTabLayout);
tabLayout.addTab(tabLayout.newTab().setText("Men"));
tabLayout.addTab(tabLayout.newTab().setText("women"));
viewPager=(ViewPager)v.findViewById(R.id.simpleViewPager);
viewPager.setOffscreenPageLimit(2);
PagerAdapter adapter=new PagerAdapter(getActivity().getSupportFragmentManager(),tabLayout.getTabCount());
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
});
return v;
}
}
如何在调用带有 TabView 的 Fragment 时将 TabPosition 设置为 Second Tab?
【问题讨论】:
-
在选择表构造函数中,您可以发送数据或布尔值,您可以根据如何设置选项卡的位置来决定
-
可以添加示例代码吗?
-
如果您添加您的选择标签代码,我可以向您解释
标签: fragment android android-fragments android-viewpager android-tablayout