我想在片段中使用tabhost和tabwidget,从左到右滑动,反之亦然。 我只有一个Activity(对于容器我使用FrameLayout)和抽屉导航,导航抽屉有5个项目链接5个片段。在其中2个片段中,我想使用带有良好动画的滑动选项卡(如在Activity中)。 目前,标签看起来不太好,我无法自定义它们。 这是我对碎片的认识:
公共类MainActivity扩展了AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
Fragment fragment = null;
if (id == R.id.nav_feed) {
fragment = new FeedFragment();
} else if (id == R.id.nav_file) {
fragment = new FileFragment();
} else if (id == R.id.nav_image) {
fragment = new ImageFragment();
} else if (id == R.id.nav_settings) {
fragment = new SettingsFragment();
} else if (id == R.id.nav_share) {
fragment = new ShareFragment();
}
if (fragment != null) {
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.frame_container, fragment).commit();
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
}
return true;
}
这里是我的片段,我想用刷子使用标签:
public class FeedFragment extends Fragment {
private FragmentTabHost mTabHost;
public FeedFragment() {
setHasOptionsMenu(true);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mTabHost = new FragmentTabHost(getActivity());
mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment_feed);
Bundle arg1 = new Bundle();
arg1.putInt("arg for News", 1);
mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("News"),
FeedNewsFragment.class, arg1);
Bundle arg2 = new Bundle();
arg2.putInt("arg for My", 2);
mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("My"),
FeedMyFragment.class, arg2);
return mTabHost;
@Override
public void onDestroyView() {
super.onDestroyView();
mTabHost = null;
}
它工作但我不能使用滑动。
我是java的新手,这是我的第一个项目,所以请耐心等待。