我有一个布局,左边是几个元素,右边是一个,最大的元素。我想动态删除左侧的项目,但它们应该垂直居中。
现在我使用两个sapply(dfList, function(x) max(x$a, na.rm=TRUE))
s来实现它:
LinearLayout
是否可以使用仅具有一级层次结构的平面<LinearLayout orientation="horizontal" ...>
<LinearLayout orientation="vertical" gravity="center_vertical" ...>
<View first/>
<View second/>
<.../>
</LinearLayout>
<View theBiggest/>
</LinearLayout>
来实现此行为,而没有内部布局?
看起来像这样:
答案 0 :(得分:1)
您可以通过垂直链接实现此功能。请注意以下两种布局:
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/view"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="0dp"
android:background="@color/black"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintRight_toLeftOf="@+id/guideline"
android:layout_marginRight="0dp"
app:layout_constraintBottom_toTopOf="@+id/view2" />
<View
android:id="@+id/view2"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/guideline"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/view" />
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"
tools:layout_editor_absoluteX="160dp"
tools:layout_editor_absoluteY="0dp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/colorAccent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/guideline"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/root"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/view"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="0dp"
android:background="@color/black"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginLeft="0dp"
app:layout_constraintRight_toLeftOf="@+id/guideline"
android:layout_marginRight="0dp"
app:layout_constraintBottom_toBottomOf="parent" />
<!--<View
android:id="@+id/view2"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@+id/guideline"
android:layout_marginRight="0dp"
android:layout_marginTop="0dp"
app:layout_constraintTop_toBottomOf="@+id/view" />-->
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5"
tools:layout_editor_absoluteX="160dp"
tools:layout_editor_absoluteY="0dp" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@color/colorAccent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@+id/guideline"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
不同之处在于我删除了第二个视图并将第一个视图的底部约束更改为app:layout_constraintBottom_toBottomOf="parent"
。
当您从左侧部分添加和删除视图时,需要动态完成约束的这种调整。您可以通过ConstraintSet