【发布时间】:2017-11-02 09:04:10
【问题描述】:
我正在使用ConstraintLayout,我想设置一个 percentage 从按钮 2 到位于屏幕 52% 处的 Textview 示例的顶部边距。
3% 当然是与屏幕高度相比。
位置应该相对于其他 UI 组件,指南仅从屏幕的顶部(或底部)参考
可以通过 xml完全做到这一点吗?
我知道可以通过编程方式和带有重量的标准布局来执行此操作,但我需要(如果存在)XML 解决方案。
<?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"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.constraint.Guideline
android:id="@+id/guideline"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_percent="0.5" />
<Button
android:id="@+id/button3"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginBottom="8dp"
android:layout_marginTop="8dp"
android:text="Button"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_marginTop="32dp"
android:layout_weight="10"
android:background="#00FF00"
android:text="SAMPLE"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/button4" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="50dp"
android:layout_marginTop="8dp"
android:text="BUTTON 2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline" />
</android.support.constraint.ConstraintLayout>
【问题讨论】:
-
PercentRelativeLayout应该为您解决问题。 -
这个类已被弃用...但是你能举个例子吗?
-
您可以使用带有 android:weightSum 参数的 LinearLayout。然后,您可以根据需要添加视图。 Like Button 的权重为 0.5,而 textview 的权重为 0.3。您可以在按钮和文本视图之间添加一个视图。将权重设为 0.03,并将可见性设为不可见。我知道,这不是正确的方法:P 这是一种技巧
-
@appersiano 到目前为止,我认为没有办法仅使用 XML 来实现这一点。
标签: android android-constraintlayout