Android Fragment tabhost在Fragment中不工作
我正在关注这个主题 在Homefragment中,我设置了fragmenttabhost,问题是tab的视图没有显示Android Fragment tabhost在Fragment中不工作,android,android-fragments,fragment-tab-host,Android,Android Fragments,Fragment Tab Host,我正在关注这个主题 在Homefragment中,我设置了fragmenttabhost,问题是tab的视图没有显示 public class HomeFragment extends Fragment { private FragmentTabHost mTabHost; public HomeFragment(){} @Override public View onCreateView(LayoutInflater inflater, ViewGrou
public class HomeFragment extends Fragment {
private FragmentTabHost mTabHost;
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.my_parent_fragment, container, false);
mTabHost = (FragmentTabHost)rootView.findViewById(android.R.id.tabhost);
mTabHost.setup(getActivity(), getFragmentManager(), android.R.id.tabcontent);
mTabHost.addTab(
mTabHost.newTabSpec("tab1").setIndicator("DISCOVER", null),
FragmentA.class, null);
mTabHost.addTab(
mTabHost.newTabSpec("tab2").setIndicator("SHOP", null),
FragmentB.class, null);
return rootView;
}
}
FragmentA.java
public class FragmentA extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fraga, container, false);
Toast.makeText(getActivity(), "DISCOVER", Toast.LENGTH_LONG).show();
return rootView;
}
}
fraga.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#ff0000"
>
<TextView
android:id="@+id/txtLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:textSize="16dp"
android:text="DISCOVER"/>
</RelativeLayout>
试试这个
public class HomeFragment extends Fragment {
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String, List<String>> listDataChild;
private FragmentTabHost tabHost;
public HomeFragment(){}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
tabHost = new FragmentTabHost(getActivity());
tabHost.setup(getActivity(), getChildFragmentManager(), R.layout.my_parent_fragment);
Bundle arg1 = new Bundle();
arg1.putInt("Arg for Frag1", 1);
tabHost.addTab(tabHost.newTabSpec("Tab1").setIndicator("Tab1")),
FragmentA.class, arg1);
Bundle arg2 = new Bundle();
arg2.putInt("Arg for Frag2", 2);
tabHost.addTab(tabHost.newTabSpec("Tab2").setIndicator("Tab 2")),
FragmentB.class, arg2);
return tabHost;
}
公共类HomeFragment扩展了片段{
可扩展列表适配器;
ExpandableListView解释视图;
列表列表数据头;
HashMapListDataChild;
私有碎片tabHost tabHost;
公共HomeFragment(){}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
tabHost=newfragmenttabhost(getActivity());
tabHost.setup(getActivity(),getChildFragmentManager(),R.layout.my\u parent\u fragment);
Bundle arg1=新Bundle();
arg1.putInt(“Arg代表Frag1”,1);
tabHost.addTab(tabHost.newTabSpec(“Tab1”).setIndicator(“Tab1”)),
片段a.class,arg1);
Bundle arg2=新Bundle();
arg2.putInt(“Arg代表Frag2”,2);
tabHost.addTab(tabHost.newTabSpec(“Tab2”).setIndicator(“Tab2”)),
片段b.class,arg2);
返回tabHost;
}
1.您的rootview
中是否有id为android.R.id.tabcontent
的视图?2.尝试在setup
方法中使用getChildFragmentManager
。我使用了getchildfrgmentmanager。。但不要更改第一个选项卡的“名称”!