透明主题将项目放在中心位置

时间:2012-10-03 14:34:24

标签: android

我想创建一个主要是透明的活动,除了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正好在中心,忽略了我的底部布局重力......

1 个答案:

答案 0 :(得分:2)

LinearLayout无法执行此操作,请改用RelativeLayoutRelativeLayout将允许您访问其子项中的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,我建议搞清楚这一点。这取决于您需要查看视图的方式。

无论哪种方式,RelativeLayoutlayout_centerInParent应该做你想做的事。