1

我想做一个除了gridview和textview之外主要是透明的活动,所以我的风格是:

<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>

和我的布局:

<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:layout_gravity="bottom" />

<GridView ...
    android:layout_gravity="bottom"
 />

然而 textview 和 gridview 是在准确的中心,忽略我的底部布局重力......

4

1 回答 1

2

ALinearLayout不能这样做,用 aRelativeLayout代替。ARelativeLayout将使您可以访问其centerInParent子项中的属性..

这里:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >


    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true">  //<---- this here is the trick
        <TextView ... 
            android:layout_gravity="bottom" />
        <GridView ...
            android:layout_gravity="bottom"
        />
    </LinearLayout>

</RelativeLayout>

您也许可以摆脱它LinearLayout,我建议您解决这个问题。这取决于您需要视图的外观。

无论哪种方式, aRelativeLayout和 alayout_centerInParent都应该做你想做的事。

于 2012-10-03T15:03:44.257 回答