天天看點

android百分比布局 棄用,android – PercentRelativeLayout在v26中已棄用

使用ConstraintLayout實作布局有兩種方法.

#1指南

考慮到您需要布置六個視圖,您需要添加兩個垂直指南,其中百分比位置為33%,父寬度為66%.您還需要添加兩個水準指南,其中百分比位置為45%和螢幕高度的90%.然後将您的六個視圖限制為這些指南,如此螢幕截圖所示:

android百分比布局 棄用,android – PercentRelativeLayout在v26中已棄用

以下是使用指南進行布局建構的XML源代碼:

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="match_parent">

android:id="@+id/view1"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_blue_bright"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_1"

app:layout_constraintEnd_toStartOf="@+id/vertical_guideline_1"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/view2"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_green_dark"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_1"

app:layout_constraintEnd_toStartOf="@+id/vertical_guideline_2"

app:layout_constraintStart_toStartOf="@+id/vertical_guideline_1"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/view3"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_purple"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_1"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="@+id/vertical_guideline_2"

app:layout_constraintTop_toTopOf="parent" />

android:id="@+id/view4"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_orange_light"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_2"

app:layout_constraintEnd_toStartOf="@+id/vertical_guideline_1"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintTop_toTopOf="@+id/horizontal_guideline_1" />

android:id="@+id/view5"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_red_light"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_2"

app:layout_constraintEnd_toStartOf="@+id/vertical_guideline_2"

app:layout_constraintStart_toStartOf="@+id/vertical_guideline_1"

app:layout_constraintTop_toTopOf="@+id/horizontal_guideline_1" />

android:id="@+id/view6"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_blue_dark"

app:layout_constraintBottom_toTopOf="@+id/horizontal_guideline_2"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintStart_toStartOf="@+id/vertical_guideline_2"

app:layout_constraintTop_toTopOf="@+id/horizontal_guideline_1" />

android:id="@+id/vertical_guideline_1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

app:layout_constraintGuide_percent="0.33" />

android:id="@+id/vertical_guideline_2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="vertical"

app:layout_constraintGuide_percent="0.66" />

android:id="@+id/horizontal_guideline_1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

app:layout_constraintGuide_percent="0.45" />

android:id="@+id/horizontal_guideline_2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:orientation="horizontal"

app:layout_constraintGuide_percent="0.9" />

#2鍊條重量

鍊是另一種使用百分比值來調整視圖大小的強大方法.您在ConstraintLayout鍊中使用權重值,就像在LinearLayout中使用權重一樣.

這是顯示如何使用帶權重的鍊的XML示例:

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="match_parent">

android:id="@+id/view1"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_blue_bright"

app:layout_constraintHorizontal_chainStyle="spread"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintVertical_chainStyle="spread"

app:layout_constraintVertical_weight="45"

app:layout_constraintTop_toTopOf="parent"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toStartOf="@+id/view2"

app:layout_constraintBottom_toTopOf="@+id/view4" />

android:id="@+id/view2"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_green_dark"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintTop_toTopOf="@+id/view1"

app:layout_constraintStart_toEndOf="@+id/view1"

app:layout_constraintEnd_toStartOf="@+id/view3"

app:layout_constraintBottom_toBottomOf="@+id/view1" />

android:id="@+id/view3"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_purple"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintTop_toTopOf="@+id/view2"

app:layout_constraintStart_toEndOf="@+id/view2"

app:layout_constraintBottom_toBottomOf="@+id/view2"

app:layout_constraintEnd_toEndOf="parent" />

android:id="@+id/view4"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_orange_light"

app:layout_constraintHorizontal_chainStyle="spread"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintVertical_weight="45"

app:layout_constraintTop_toBottomOf="@+id/view1"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintEnd_toStartOf="@+id/view5"

app:layout_constraintBottom_toTopOf="@+id/space" />

android:id="@+id/view5"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_red_light"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintTop_toTopOf="@+id/view4"

app:layout_constraintStart_toEndOf="@+id/view4"

app:layout_constraintEnd_toStartOf="@+id/view6"

app:layout_constraintBottom_toBottomOf="@+id/view4" />

android:id="@+id/view6"

android:layout_width="0dp"

android:layout_height="0dp"

android:background="@android:color/holo_blue_dark"

app:layout_constraintHorizontal_weight="33.3"

app:layout_constraintTop_toTopOf="@+id/view5"

app:layout_constraintStart_toEndOf="@+id/view5"

app:layout_constraintEnd_toEndOf="parent"

app:layout_constraintBottom_toBottomOf="@+id/view5" />

android:id="@+id/space"

android:layout_width="0dp"

android:layout_height="0dp"

app:layout_constraintVertical_weight="10"

app:layout_constraintTop_toBottomOf="@+id/view4"

app:layout_constraintStart_toStartOf="parent"

app:layout_constraintBottom_toBottomOf="parent" />

上面顯示的兩個示例都會導緻以下結果:

android百分比布局 棄用,android – PercentRelativeLayout在v26中已棄用

了解更多: