在Constraintlayout中,我使用指南显示tablayout和视图,tablayout覆盖10%,视图覆盖90%的屏幕。在选项卡上单击我想显示一些按钮,从屏幕的底部到55%,我使用另一个指南(对于小部件)为55%。
这是xml:
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<android.support.constraint.ConstraintLayout
android:id="@+id/cl"
android:layout_width="match_parent"
android:layout_height="match_parent">
<View
android:id="@+id/view"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#D3D3D3"
app:layout_constraintBottom_toTopOf="@+id/glTabLayout"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@null"
android:text="Button"
android:drawableTop="@mipmap/ic_launcher"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintRight_toLeftOf="@+id/imageView"
app:layout_constraintTop_toBottomOf="@+id/glWidgets" />
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@mipmap/ic_launcher"
app:layout_constraintLeft_toRightOf="@+id/button"
app:layout_constraintRight_toLeftOf="@+id/textView"
app:layout_constraintTop_toBottomOf="@+id/glWidgets" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/test"
android:textColor="#ff0000"
app:layout_constraintLeft_toRightOf="@+id/imageView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/glWidgets" />
<android.support.constraint.Guideline
android:id="@+id/glTabLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.90" />
<android.support.constraint.Guideline
android:id="@+id/glWidgets"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.55" />
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/glTabLayout"
app:tabGravity="fill"
app:tabMode="fixed"
app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget" />
</android.support.constraint.ConstraintLayout>
</layout>
在选择标签时的开始时,小部件将显示为第一个屏幕截图。但在其他选项卡上单击我希望这些小部件滑动/动画到底部,我将指南(对于小部件)从55%更改为90%,以便它隐藏在tablayout后面。
动画/更新指南的代码:
ConstraintLayout constraintLayout = binding.cl;
ConstraintSet constraintSet = new ConstraintSet();
constraintSet.clone(constraintLayout);
constraintSet.setGuidelinePercent(binding.glWidgets.getId(), percent);
TransitionManager.beginDelayedTransition(constraintLayout);
constraintSet.applyTo(constraintLayout);
现在,imageview,textview或其他普通视图隐藏在tablayout下方但按钮与tablayout重叠。我想要动画时按钮进入tablayout。附上截图以便更好地理解:
答案 0 :(得分:0)
您是否曾尝试将按钮转换为textView,只要您处于想要在视图顶部显示标签的模式?
使用包含textview和imageview而不是按钮的布局(相对或线性)。