在 TabHost 中为内容的 LinearLayout 设置 match_parent 大小 (Android)
Set match_parent size for content's LinearLayout in TabHost (Android)
我不明白,为什么 ID 为 "map_tab" 的 LinearLayout(第一个标签)实际上没有高度 "match_parent"?
我有一个带有 TabHost 的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:background="#ffff"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Вкладка №1 - карта-->
<LinearLayout
android:id="@+id/map_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Карта-->
<HorizontalScrollView
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/map_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="centerInside"/>
</ScrollView>
</HorizontalScrollView>
<TextView
android:id="@+id/sector_advert_text"
android:background="#ddffaa"
android:layout_gravity="bottom"
android:gravity="bottom"
android:layout_width="match_parent"
android:layout_height="50dp" />
</LinearLayout>
<!--Вкладка №2 - акции-->
<LinearLayout
android:id="@+id/stock_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<!--Вкладка №3 - Маршрут -->
<LinearLayout
android:id="@+id/route_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
我已经尝试将高度设置为 "fill_parent"。它看起来总是 "wrap_content"。例如,如果我将 "map_tab" 的高度设置为 50dp,它也不行!第二个和第三个选项卡也有这个问题。
我如何使选项卡的内容高度 "match_parent"?
我解决了这个问题!
只需更改:
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
在:
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
祝你好运! :)
我不明白,为什么 ID 为 "map_tab" 的 LinearLayout(第一个标签)实际上没有高度 "match_parent"? 我有一个带有 TabHost 的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:background="#ffff"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Вкладка №1 - карта-->
<LinearLayout
android:id="@+id/map_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!--Карта-->
<HorizontalScrollView
android:layout_weight="1"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/map_img"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:scaleType="centerInside"/>
</ScrollView>
</HorizontalScrollView>
<TextView
android:id="@+id/sector_advert_text"
android:background="#ddffaa"
android:layout_gravity="bottom"
android:gravity="bottom"
android:layout_width="match_parent"
android:layout_height="50dp" />
</LinearLayout>
<!--Вкладка №2 - акции-->
<LinearLayout
android:id="@+id/stock_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<!--Вкладка №3 - Маршрут -->
<LinearLayout
android:id="@+id/route_tab"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:text="3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</TabHost>
</LinearLayout>
我已经尝试将高度设置为 "fill_parent"。它看起来总是 "wrap_content"。例如,如果我将 "map_tab" 的高度设置为 50dp,它也不行!第二个和第三个选项卡也有这个问题。 我如何使选项卡的内容高度 "match_parent"?
我解决了这个问题! 只需更改:
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
在:
<TabHost
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tabHost_main"
android:layout_gravity="center_horizontal">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
祝你好运! :)