0
我比Swift更喜歡Swift,但我正在嘗試學習它。Android XML:設備更改時的佈局行更改
隨着Swift我使用自動佈局的約束,使我的佈局很容易。我似乎無法達到我想要的Android XML。
我正在創建自定義列表視圖行。我希望該行與圖像(128px)的高度相同或更少。然後,我希望標題居中並在標題下方,每個文本有2個圖像。
- 使用相對佈局,我將圖像設置爲128x128。
- 場景標題要中心對齊,並在主要 圖像的左側放置30dp。
- 其他2個圖像和文本的意見總是低於標題
- 第一個「SceneOptionImage」符合題
- 其他意見只是走在一條線上「sceneOptionImage」
我以爲我把它作爲較小的設備預覽它看起來很好。但是,當我向上移動屏幕分辨率時,就好像該行的高度變小了一樣。
4.0英寸屏幕:
6.0英寸屏幕:
那麼,爲什麼行的高度出現改變?
我可以得到一些指針嗎?謝謝。
以下是完整的XML代碼以供參考:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="128px"
android:orientation="vertical">
<ImageView
android:id="@+id/sceneImage"
android:layout_width="128px"
android:layout_height="128px"
android:layout_margin="0px"
app:srcCompat="@mipmap/clipboard"
android:layout_alignParentTop="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/sceneName"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:text="Scene Title"
android:layout_toEndOf="@id/sceneImage"
android:layout_marginLeft="30dp"
android:gravity="center"/>
<ImageView
android:id="@+id/sceneOptionImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srcCompat="@mipmap/forest"
android:layout_below="@+id/sceneName"
android:layout_alignStart="@+id/sceneName"
android:layout_marginTop="18dp" />
<TextView
android:id="@+id/sceneOptionText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/sceneOptionImage"
android:layout_below="@id/sceneName"
android:layout_marginTop="20dp"
android:text="TextView" />
<ImageView
android:id="@+id/sceneColourImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="70dp"
app:srcCompat="@mipmap/forest"
android:layout_below="@+id/sceneName"
android:layout_alignStart="@+id/sceneOptionText"
android:layout_marginTop="18dp" />
<TextView
android:id="@+id/sceneColourText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_toEndOf="@+id/sceneColourImage"
android:layout_below="@id/sceneName"
android:layout_marginTop="20dp"
android:text="TextView" />
</RelativeLayout>
使用'dp',而不是'px' –
管理佈局也許你應該嘗試[ConstraintLayour](https://developer.android.com/training/ constraint-layout/index.html) –
那麼這是一個簡單的修復。謝謝。任何機會你可以解釋爲什麼dp對於所有設備都是一樣的,而px不是? – jackabe