<?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="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:layout_weight="1">
<ImageView
android:background="#FF0000"
android:id="@+id/dog"
android:layout_width="200dp"
android:layout_height="150dp"
android:scaleType="fitXY"
android:src="@drawable/dog"></ImageView>
<ImageView
android:id="@+id/cat"
android:layout_width="200dp"
android:layout_height="150dp"
android:scaleType="fitXY"
android:src="@drawable/cat"></ImageView>
<ImageView
android:id="@+id/rabbit"
android:layout_width="200dp"
android:layout_height="150dp"
android:scaleType="fitXY"
android:src="@drawable/rabbit"></ImageView>
<ImageView
android:id="@+id/horse"
android:layout_width="200dp"
android:layout_height="150dp"
android:scaleType="fitXY"
android:src="@drawable/horse"></ImageView>
</FrameLayout>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#00FF00"></TabWidget>
</LinearLayout>
</TabHost>
在<FrameLayout>
我设置gravity="center"
。因此,<ImageView>
应出现在<FrameLayout>
的中心。
但是,当我运行此代码时,<ImageView>
位于<FrameLayout>
的左侧|顶部。为什么它不起作用?
但是,当我设置<ImageView>
的{{1}}时,它就可以了。
我知道layout_gravity="center"
和layout_gravity
之间的区别,但在此示例中,gravity
的{{1}}必须有效。但是,我不知道为什么这不起作用。
答案 0 :(得分:1)
这只是因为你无法在FrameLayout中使用android:gravity
。要在FrameLayout中对齐子项的位置,您需要在子视图中使用android:layout_gravity
设置LayoutParams。这是正确的方法。
顺便说一下,只有FYI,android:gravity
适用于LinearLayout。