【发布时间】:2018-05-22 17:02:47
【问题描述】:
我正在尝试将我的 GridLayout 更改为 ConstraintLayout。
我的网格如下所示:
<android.support.v7.widget.GridLayout android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_asset"
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
app:layout_gravity="center_horizontal"
app:layout_column="0"
app:layout_row="0"
app:hideText="true"
app:skipStartColor="true"/>
<TextView
android:id="@+id/progress_text_stage_asset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_small"
app:layout_gravity="center_horizontal"
app:layout_column="0"
app:layout_row="1"
style="@style/AppWidget.Text.Emphasized"
android:gravity="center"
android:textColor="@color/circular_progress_middle_color"
android:text="text text text" />
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_sync"
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
app:layout_gravity="center_horizontal"
app:layout_column="2"
app:layout_row="0"
app:hideText="true"
app:skipStartColor="true"/>
<TextView
android:id="@+id/progress_text_stage_sync"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_small"
app:layout_gravity="center_horizontal"
app:layout_column="2"
app:layout_row="1"
style="@style/AppWidget.Text.Emphasized"
android:gravity="center"
android:textColor="@color/circular_progress_middle_color"
android:text="text text text" />
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_completed"
android:layout_width="@dimen/circular_color_progress_size_medium"
android:layout_height="@dimen/circular_color_progress_size_medium"
app:layout_gravity="center_horizontal"
app:layout_column="0"
app:layout_row="3"
app:hideText="true"
app:skipStartColor="true"/>
<TextView
android:id="@+id/progress_text_stage_completed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_small"
app:layout_gravity="center_horizontal"
app:layout_column="0"
app:layout_row="4"
style="@style/AppWidget.Text.Emphasized"
android:gravity="center"
android:textColor="@color/circular_progress_middle_color"
android:text="@string/msg_in_store_commissioning_stage_completed" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_column="1"
app:layout_row="2"
app:layout_columnWeight="1"
app:layout_rowWeight="1"/>
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_params"
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
app:layout_gravity="center"
app:layout_column="2"
app:layout_row="3"
app:hideText="true"
app:skipStartColor="true"/>
</android.support.v7.widget.GridLayout>
它会产生如下输出:
我是 ConstraintLayout 的新手。有没有一种简单的方法可以使用约束布局来完成相同的行为?我想它会更高效、更干净。
使用 RelativeLayout 将只是左对齐、右对齐、下对齐等。 使用 LinearLayout 只是在这些 Circular 视图之间放置一些空视图并为其添加特定的权重。
但是如何使用 ConstraintLayout 轻松完成呢?
更新: 到目前为止,这是我对 ConstraintLayout 的尝试:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_asset"
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
android:layout_marginStart="16dp"
app:hideText="true"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:skipStartColor="true" />
<TextView
android:id="@+id/progress_text_stage_asset"
style="@style/AppWidget.Text.Emphasized"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="12dp"
android:gravity="center"
android:text="text text text"
android:textColor="@color/circular_progress_middle_color"
app:layout_column="0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progress_stage_asset"
app:layout_gravity="center_horizontal"
app:layout_row="1" />
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_sync"
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
android:layout_marginEnd="16dp"
app:hideText="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:skipStartColor="true" />
<TextView
android:id="@+id/progress_text_stage_sync"
style="@style/AppWidget.Text.Emphasized"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginTop="@dimen/margin_small"
android:gravity="center"
android:text="text text text"
android:textColor="@color/circular_progress_middle_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progress_stage_sync"
app:layout_gravity="center_horizontal" />
<com.app.widget.CircularColorProgressView
android:id="@+id/progress_stage_completed"
android:layout_width="@dimen/circular_color_progress_size_medium"
android:layout_height="@dimen/circular_color_progress_size_medium"
android:layout_marginBottom="48dp"
app:hideText="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_gravity="center_horizontal"
app:skipStartColor="true" />
<TextView
android:id="@+id/progress_text_stage_completed"
style="@style/AppWidget.Text.Emphasized"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="3dp"
android:layout_marginTop="@dimen/margin_small"
android:gravity="center"
android:text="@string/msg_in_store_commissioning_stage_completed"
android:textColor="@color/circular_progress_middle_color"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/progress_stage_completed"
app:layout_gravity="center_horizontal" />
<com.app.widget.CircularColorProgressView
android:layout_width="@dimen/circular_color_progress_size_small"
android:layout_height="@dimen/circular_color_progress_size_small"
android:layout_marginBottom="80dp"
android:layout_marginEnd="16dp"
app:hideText="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:skipStartColor="true" />
【问题讨论】:
-
请分享您对 ConstraintLayout 的尝试。
-
请也分享您的 CircularColorProgressView 文件
-
@RamiJemli 我更新了我的问题
标签: android android-layout android-constraintlayout android-gridlayout