我有一個奇怪的問題,我希望有人能夠幫助我。RelativeLayout中的大背景圖像會導致layout_below和centerInParent的意外行爲
我試圖讓3個按鈕出現在另一個下方,從屏幕中心開始的10dp頂部邊距。因此,第一個按鈕位於屏幕中央,第二個按鈕位於該按鈕下方(沒有按下屏幕中心按鈕),第三個按鈕位於第二個按鈕下方。
每當我向我的RelativeLayout(填充整個屏幕)添加一個大的(大於屏幕大小)背景圖像時,它會導致第二個和第三個圖像返回到屏幕的頂部應該是如果我從第一個按鈕中刪除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中的中心,並將方向設置爲垂直。
任何幫助非常感謝,我有點迷失在此刻!
乾杯!
感謝您的回覆!我嘗試了你所說的,並將背景放入ImageView中,但發生同樣的問題。圖像顯示的那一刻,第二個和第三個按鈕可以神奇地傳送到屏幕的頂部。我想要的是從屏幕中點向下列出按鈕。因此,第一個按鈕將位於屏幕中間,第二個按鈕位於第二個按鈕之下,等等。定義第二個按鈕時不會將第一個按鈕向上推。順便說一下,我確實對按鈕2和按鈕3有「android:layout_centerHorizontal =」true「,但我忘記了將它包含到代碼中。 – Mick
試試這個:android:layout_below =」@ + id/button1「,和另一個按鈕。 – Javier