Я попытался создать нижний табуст + фрагмент.Содержимое вкладки не изменяется, когда я нажимаю на tabhost
Проблемы есть,
1) при нажатии на кнопке вкладки, она не переключается на другой фрагмент, хотя мой журнал показывает, что он вступил в создании вида. Я устал помещать текстовое представление на каждый фрагмент, но ни один из них не отображается, поэтому я подозреваю, что фрагмент не добавлен в идентификатор framelayout: realtabcontent?
2) Нижняя вкладка хост кажется «слишком Дно», так что некоторые из нижней части вкладки «s находятся вне экрана
Как исправить проблемы? Спасибо за помощь
Главная активность
public class MainActivity extends FragmentActivity {
public FragmentTabHost tabHost;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tabHost = (FragmentTabHost) findViewById(R.id.tabhost);
tabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);
tabHost.addTab(
setIndicator(this, tabHost.newTabSpec("About"),
R.drawable.ic_launcher), About.class, null);
tabHost.addTab(
setIndicator(this, tabHost.newTabSpec("Camera"),
R.drawable.ic_launcher), CameraHandle.class, null);
tabHost.addTab(
setIndicator(this, tabHost.newTabSpec("Gallery"),
R.drawable.ic_launcher), PhotoGallery.class, null);
tabHost.addTab(
setIndicator(this, tabHost.newTabSpec("LeaderBoard"),
R.drawable.ic_launcher), LeaderBoard.class, null);
}
public TabSpec setIndicator(Context ctx, TabSpec spec, int resId) {
// TODO Auto-generated method stub
View v = LayoutInflater.from(ctx).inflate(R.layout.custom_tab, null);
ImageView logo = (ImageView) v.findViewById(R.id.tab_logo);
logo.setImageResource(resId);
TextView text = (TextView) v.findViewById(R.id.tab_title);
text.setText(spec.getTag());
return spec.setIndicator(v);
}
}
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/realtabcontent"
android:layout_width="match_parent"
android:layout_height="0dip"
android:layout_weight="1" />
<android.support.v4.app.FragmentTabHost
android:id="@+id/tabhost"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<FrameLayout
android:id="@+id/tabcontent"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_weight="0" />
</android.support.v4.app.FragmentTabHost>
</LinearLayout>
Фрагмент (для каждой вкладки один фрагмент)
public class About extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.about, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextVsssiew" />
</LinearLayout>
но язычок находятся в верхней части макета, но не в нижней части макета? – user782104