1

グリッドビューとテキストビューを除いて主に透明なアクティビティを作成したいので、私のスタイルは次のとおりです。

<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はこれを行うことができませんRelativeLayout。代わりに a を使用してください。Aは、その子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、そして私はこれをいじることをお勧めします. ビューをどのように表示する必要があるかによって異なります。

いずれにせよ、 aRelativeLayoutと alayout_centerInParentはあなたが望むことをするべきです。

于 2012-10-03T15:03:44.257 に答える