Как вы можете видеть, линейная раскладка находится поверх вкладок. Я хочу, чтобы выровнять нижнюю часть LinearLayout до верхней части вкладки.
Также может также работать выравнивание RelativeLayout в верхней части вкладок.
Вот соответствующий код для просмотра выше:
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="fill_parent" android:orientation="vertical" android:layout_height="wrap_content" android:id="@+id/LinearLayout02" android:layout_alignParentBottom="true">
<FrameLayout android:id="@+id/FrameLayout02" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingTop="20sp" android:paddingBottom="20sp">
<ImageButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/record" android:layout_gravity="center_horizontal" android:id="@+id/RecordImageButton"></ImageButton>
</FrameLayout>
<SeekBar android:id="@+id/SeekBar01" android:layout_height="wrap_content" android:layout_width="fill_parent" android:paddingBottom="5sp" android:paddingLeft="10sp" android:paddingRight="10sp"></SeekBar>
<FrameLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:id="@+id/FrameLayout03">
<LinearLayout android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/LinearLayout02" android:layout_gravity="center_horizontal">
<ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton01" android:layout_height="wrap_content" android:src="@drawable/play_rev"></ImageButton>
<ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton02" android:layout_height="wrap_content" android:src="@drawable/play_stop"></ImageButton>
<ImageButton android:layout_width="wrap_content" android:id="@+id/ImageButton03" android:layout_height="wrap_content" android:src="@drawable/play"></ImageButton>
</LinearLayout>
</FrameLayout>
</LinearLayout>
</RelativeLayout>
Вот код для вкладок:
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TabWidget
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@android:id/tabs"
android:layout_alignParentBottom="true" />
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabcontent" />
</RelativeLayout>
</TabHost>
MainActivity, которая устанавливает активность для каждой вкладки:
public void initTabs()
{
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
intent = new Intent().setClass(this, FirstActivity.class);
spec = tabHost.newTabSpec("tab1").setIndicator("Tab",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SecondActivity.class);
spec = tabHost.newTabSpec("tab2").setIndicator("Tab 2",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, ThridActivity.class);
spec = tabHost.newTabSpec("tab3").setIndicator("Tab 3",
res.getDrawable(R.drawable.ic_tab_artists))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
}
Вы можете создать параметры и правила:
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT)
params.addRule(RelativeLayout.Top, anotherView.getId());
Эта строка означает, что один вид снизу будет вершиной другого... Это может работать, но рекомендуется сделать это в xml.
<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout android:id="@+id/RelativeLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout android:layout_width="fill_parent"
android:orientation="vertical" android:id="@+id/LinearLayout02"
android:layout_alignParentBottom="true" android:weightSum="1"
android:layout_height="wrap_content">
<LinearLayout android:id="@+id/LinearLayout03"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight=".25" android:weightSum="1"
android:orientation="vertical">
<FrameLayout android:id="@+id/FrameLayout02"
android:layout_height="wrap_content" android:layout_width="fill_parent"
android:paddingTop="20sp" android:paddingBottom="20sp"
android:layout_weight=".5">
<ImageButton android:layout_width="wrap_content"
android:layout_height="wrap_content" android:src="@drawable/record"
android:layout_gravity="center_horizontal" android:id="@+id/RecordImageButton"></ImageButton>
</FrameLayout>
<SeekBar android:id="@+id/SeekBar01" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:paddingBottom="5sp"
android:paddingLeft="10sp" android:paddingRight="10sp"></SeekBar>
<FrameLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@+id/FrameLayout03">
<LinearLayout android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/LinearLayout02"
android:layout_gravity="center_horizontal">
<ImageButton android:layout_width="wrap_content"
android:id="@+id/ImageButton01" android:layout_height="wrap_content"
android:src="@drawable/play_rev"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:id="@+id/ImageButton02" android:layout_height="wrap_content"
android:src="@drawable/play_stop"></ImageButton>
<ImageButton android:layout_width="wrap_content"
android:id="@+id/ImageButton03" android:layout_height="wrap_content"
android:src="@drawable/play"></ImageButton>
</LinearLayout>
</FrameLayout>
</LinearLayout>
<LinearLayout android:id="@+id/TabLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight=".75">
</LinearLayout>
</LinearLayout>
</RelativeLayout>
Вы можете добавить свои вещи TabHost в TabLayout (последний LinearLayout). Надеюсь, что это решит вашу проблему.
addView
ваших представлений Tabhost в my TabLayout (LinearLayout) из кода.