Aja*_*y S 21 android android-constraintlayout
我有我的登录活动的这种布局.我想覆盖progressBar,就像它可以使用FrameLayout.怎么用这个ConstraintLayout?
<layout>
<data>
<variable
name="vm"
type="com.app.android.login.vm" />
</data>
<ScrollView 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:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context="com.app.android.login.LoginActivity"
tools:ignore="missingPrefix">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/default_view_margin_bottom_8dp">
<android.support.design.widget.TextInputLayout
android:id="@+id/til_login_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_view_margin_right_8dp"
android:layout_marginStart="@dimen/default_view_margin_left_8dp"
android:textColorHint="@color/colorSecondaryText"
app:hintTextAppearance="@style/AppTheme.InputLayoutStyle"
app:layout_constraintBottom_toTopOf="@+id/til_login_password"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_chainStyle="packed">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_email"
android:imeOptions="actionNext"
android:singleLine="true"
android:text="@={vm.emailField}"
android:textColor="@color/colorPrimaryText" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:id="@+id/til_login_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_view_margin_right_8dp"
android:layout_marginStart="@dimen/default_view_margin_left_8dp"
android:textColorHint="@color/colorSecondaryText"
app:hintTextAppearance="@style/AppTheme.InputLayoutStyle"
app:layout_constraintBottom_toTopOf="@+id/btn_login_login"
app:layout_constraintTop_toBottomOf="@+id/til_login_email"
app:layout_constraintVertical_chainStyle="packed">
<android.support.design.widget.TextInputEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/login_password"
android:imeOptions="actionDone"
android:inputType="textPassword"
android:singleLine="true"
android:text="@={vm.passwordField}"
android:textColor="@color/colorPrimaryText" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/btn_login_login"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_view_margin_right_8dp"
android:layout_marginStart="@dimen/default_view_margin_left_8dp"
android:layout_marginTop="48dp"
android:onClick="@{vm::login}"
android:text="@string/login_btn_text"
android:textColor="@color/colorWhite"
app:layout_constraintBottom_toTopOf="@+id/textview_login_forgot_password"
app:layout_constraintTop_toBottomOf="@+id/til_login_password"
app:layout_constraintVertical_chainStyle="packed" />
<TextView
android:id="@+id/textview_login_forgot_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_view_margin_right_8dp"
android:layout_marginStart="@dimen/default_view_margin_left_8dp"
android:layout_marginTop="36dp"
android:gravity="center"
android:text="@string/login_forgot_password"
app:layout_constraintBottom_toTopOf="@+id/btn_login_register"
app:layout_constraintTop_toBottomOf="@+id/btn_login_login"
app:layout_constraintVertical_chainStyle="packed" />
<Button
android:id="@+id/btn_login_register"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_view_margin_right_8dp"
android:layout_marginStart="@dimen/default_view_margin_left_8dp"
android:text="@string/login_sign_up"
android:textColor="@color/colorWhite"
app:layout_constraintBottom_toBottomOf="parent" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:visibility="@{vm.progressVisibility}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</ScrollView>
</layout>
Run Code Online (Sandbox Code Playgroud)
它看起来像这样:
我正在寻找适用于API级别19+的解决方案.我不希望通过包装Button或ProgressBar内部ViewGroup左右在我的布局中添加更多层次结构.
kal*_*lik 23
有两个选项,在每种情况下,您都可以为<ProgressBar/>标记添加一个属性.它是
android:translationZ="2dp"
Run Code Online (Sandbox Code Playgroud)
要么
android:elevation="2dp"
Run Code Online (Sandbox Code Playgroud)
API级别必须> = 21.
Che*_*amp 12
如果要100%覆盖目标视图,请将覆盖视图的所有边约束到目标视图的相应边,并将覆盖视图的高度和宽度设置0dp为如下所示:
<View
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="@id/animation_view"
app:layout_constraintLeft_toLeftOf="@id/animation_view"
app:layout_constraintRight_toRightOf="@id/animation_view"
app:layout_constraintTop_toTopOf="@id/animation_view"/>
Run Code Online (Sandbox Code Playgroud)
这是一个有效的例子.在下图中,红色稀松布放在图像上.XML遵循图像.
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/animation_view"
android:layout_width="250dp"
android:layout_height="250dp"
android:src="@mipmap/ic_launcher"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:background="#AAFF0000"
app:layout_constraintBottom_toBottomOf="@id/animation_view"
app:layout_constraintLeft_toLeftOf="@id/animation_view"
app:layout_constraintRight_toRightOf="@id/animation_view"
app:layout_constraintTop_toTopOf="@id/animation_view" />
</android.support.constraint.ConstraintLayout>
Run Code Online (Sandbox Code Playgroud)
查看文档的ConstraintLayout更多信息.
设置高程ProgressBar 2dp似乎有效。
android:elevation="2dp"
Run Code Online (Sandbox Code Playgroud)
您也可以尝试translationZ按照类似问题的答案中的建议进行设置。对我来说,这适用于运行 API 17 的模拟器,并且进度条按预期显示在顶部。如果您收到任何警告,请检查您的构建版本
根据我的观察,Android 按照它们在 xml 文件中出现的顺序沿 z 轴“堆叠”视图,文件末尾的视图将位于 z 轴的顶部,而文件开头的视图将位于 z 轴的顶部。该文件将位于底部。当然,一旦你开始设置高程和 zTranslation 等,z 轴堆栈顺序就会受到影响......
因此,将 ProgressBar 声明移动到 ConstraintLayout 的末尾应该使其显示在其他视图之上,这对我有用。
| 归档时间: |
|
| 查看次数: |
13665 次 |
| 最近记录: |