0

誰かが私を助けてくれることを望んでいるという奇妙な問題があります。

画面の中央から10dpのトップマージンで、3つのボタンを上下に表示しようとしています。したがって、最初のボタンは画面の中央にあり、2番目のボタンはそのボタンの下にあり(画面ボタンの中央を上に押さないで)、3番目のボタンは2番目のボタンの下にあります。

大きな(画面のサイズよりも大きい)背景画像をRelativeLayout(画面全体に表示)に追加すると、2番目と3番目の画像が画面の上部(本来あるべき場所)に戻ります。最初のボタンからcenterInParent属性を削除した場合)。最初のボタンはまだ画面の中央にあります。

誰かが以前にこの問題を抱えたことがあるかどうか、そしてそれを回避するための最良の解決策は何ですか?小さい画像を使用することもできますが、問題が再び小さい画面サイズで表示されるため、すべての画像を縮小する必要があり、特定の画面サイズでも表示されることがあるため、理想的ではありません。

これが私のXMLファイルです:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/bg" >
<Button
    android:id="@+id/button1"
    android:layout_centerInParent="true"
    style="@style/Button" />
<Button
    android:id="@+id/button2"
    android:layout_marginTop="10dp"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/button1"
    style="@style/Button" />
<Button
    android:id="@+id/button3"
    android:layout_marginTop="10dp"
    android:layout_centerHorizontal="true"
    android:layout_below="@id/button2"
    style="@style/Button" />
</RelativeLayout>

ボタンのスタイルは単純です。

<style name="Button">
    <item name="android:layout_width">200dp</item>
    <item name="android:layout_height">40dp</item>
    <item name="android:gravity">center</item>
    <item name="android:padding">0dp</item>
    <item name="android:textStyle">bold</item>
</style>

グーグルでこの質問に答えてくれる人が見つからなかったので、それは私が誤解していることであるに違いありません。それは一般的な問題のように思われます。

ボタンをLinearLayoutでラップしようとしましたが、LinearLayoutが大きくなると(ボタンを追加することで)高くなるため、目的の効果が得られません。ボタンを最初から開始する必要があります。画面の中央で下に移動します。基本的には、RelativeLayoutがなく、LinearLayoutの中心に重力が設定され、方向が垂直に設定されているのと同じ結果が得られます。

どんな助けでも大歓迎です、私は今これでちょっと迷っています!

乾杯!

4

2 に答える 2

0

よく理解できたら教えてください。画面に背景画像を配置し、画面の中央に3つのボタンを配置することをお勧めします。これが問題である場合は、レイアウトを入力してみてください。

<ImageView
android:id="@+id/your_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/your_image"
android:scaleType="fitXY"
/>

ボタンについては、android:layout_centerInParent = "true"の代わりに、すべてのボタンに次のように配置します。

android:layout_centerVertical="true"
于 2012-09-01T12:49:44.883 に答える
0

この問題を解決できなかったので(ある種のバグのように見えました)、画面にボタンを表示する方法を妥協し、ボタンを押したままLinearLayoutを使用するように簡略化しました。画面を下に。

于 2013-01-05T05:43:41.840 に答える