Android 无法在导航抽屉的碎片内添加选项卡
1)我在这里遵循了Android开发者文档中的导航抽屉示例Android 无法在导航抽屉的碎片内添加选项卡,android,android-fragments,android-tabs,navigation-drawer,Android,Android Fragments,Android Tabs,Navigation Drawer,1)我在这里遵循了Android开发者文档中的导航抽屉示例 创建了我的整个应用程序。在给定的示例中,他们为抽屉中选择的每个项目使用了片段,称为片段,代码如下 Bundle args = new Bundle(); args.putInt("Title_Number", position); fragment.setArguments(args); FragmentManager fragmentManager = getFragmentManager(); fragmentManager.be
创建了我的整个应用程序。在给定的示例中,他们为抽屉中选择的每个项目使用了片段,称为片段,代码如下
Bundle args = new Bundle();
args.putInt("Title_Number", position);
fragment.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit();
2)现在,我希望片段内部有一个选项卡行为也就是说,当我在导航抽屉中选择一个特定项目时,加载的片段应该在顶部显示一个选项卡栏,类似这样
3)我遵循了这里给出的教程和示例,
但此处给出的示例使用的是与片段不兼容的FragmentActivity(据我所知) 有人能帮我在我的应用程序中实现这种行为吗。提前谢谢
导入android.app.ActionBar;
import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import cgg.gov.in.apps.eoffice.source.R;
public class TestTabsinsideFragment extends Fragment
{
View rootView;
public TestTabsinsideFragment ()
{
// Empty constructor required for fragment subclasses
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
// Apply the layout for the fragment
rootView = inflater.inflate(R.layout.approve_leaves, container, false);
getActivity().setTitle("New tabbed layout inside Fragment :-) ");
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
// show the given tab
}
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
// hide the given tab
}
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
// probably ignore this event
}
};
// Add 3 tabs, specifying the tab's text and TabListener
for (int i1 = 0; i1 < 3; i1++) {
getActivity().getActionBar().addTab(
getActivity().getActionBar().newTab()
.setText("Tab " + (i1 + 1))
.setTabListener(tabListener));
}
return rootView;
}
导入android.app.Fragment;
导入android.app.FragmentTransaction;
导入android.os.Bundle;
导入android.view.LayoutInflater;
导入android.view.view;
导入android.view.ViewGroup;
导入cgg.gov.in.apps.eoffice.source.R;
公共类TestTabsinsideFragment扩展了片段
{
视图根视图;
公共TestTabsinsideFragment()
{
//片段子类需要空构造函数
}
@凌驾
CreateView上的公共视图(布局、充气机、视图组容器、捆绑包保存状态)
{
getActivity().getActionBar().setNavigationMode(ActionBar.NAVIGATION\u MODE\u选项卡);
//为片段应用布局
rootView=充气机。充气(R.layout.approve\u树叶,容器,假);
getActivity().setTitle(“片段内的新选项卡布局:-”);
ActionBar.TabListener TabListener=新建ActionBar.TabListener(){
已选择的公共事务(ActionBar.Tab选项卡,FragmentTransaction ft){
//显示给定的选项卡
}
已选择公共无效OnTab(ActionBar.Tab选项卡,FragmentTransaction ft){
//隐藏给定的选项卡
}
已重新选择公共void ontaber(ActionBar.Tab选项卡,FragmentTransaction ft){
//可能忽略此事件
}
};
//添加3个选项卡,指定选项卡的文本和TablListener
for(inti1=0;i1<3;i1++){
getActivity().getActionBar().addTab(
getActivity().getActionBar().newTab()
.setText(“制表符”+(i1+1))
.setTabListener(tabListener));
}
返回rootView;
}
我自己解决了这个问题。:D你找到解决方案了吗,如果是,请在这里发布解决方案。……我也在做一个类似的应用程序,需要在Fragments中添加一个tabhost。我尝试实现你在这里所做的。但是你注意到了吗,现在,如果你导航到另一个抽屉片段并返回,它会创建3个tab项每次都是。如何解决?而且,标签似乎覆盖了抽屉,而抽屉应该是相反的。你是如何解决这些问题的?是的。巴拉先生,我也面临同样的问题。我不知道如何解决它们,我结束了对我的设计的更改。我想,谷歌安卓代码库将有代码来创建这种行为(这种行为存在于PlayStore中)。但是我无法获得PlayStore的代码,我想这是机密;-)