我想创建一个主要是透明的活动,除了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正好在中心,忽略了我的底部布局重力......
答案 0 :(得分:2)
LinearLayout
无法执行此操作,请改用RelativeLayout
。 RelativeLayout
将允许您访问其子项中的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
,我建议搞清楚这一点。这取决于您需要查看视图的方式。
无论哪种方式,RelativeLayout
和layout_centerInParent
应该做你想做的事。