片段约束布局在主 activity 的选项卡顶部拉伸
Fragment constraint layout stretching on top of tabs of the main activity
我已经构建了一个带有 ListView
、空视图和总计数视图的约束布局片段。底部约束正在工作(尽管进行了人为调整),但顶部与我的 MainActivity
:
中的选项卡重叠
我的代码在这里,这是我第一次使用约束布局:
{
<?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">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/total_items_view"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.98"
tools:layout_editor_absoluteX="8dp" />
<TextView
android:id="@+id/total_items_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorOrange"
android:padding="4dp"
android:text="Items in this category: "
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintRight_toLeftOf="@id/items_number_view"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/items_number_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorOrange"
android:padding="4dp"
android:text="44"
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintLeft_toRightOf="@id/total_items_view" />
<RelativeLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone">
<ImageView
android:id="@+id/empty_book_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/orange_orange_book" />
<TextView
android:id="@+id/empty_title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/empty_book_image"
android:layout_centerHorizontal="true"
android:fontFamily="sans-serif-medium"
android:paddingTop="16dp"
android:text="This category is still empty..."
android:textAppearance="?android:textAppearanceMedium" />
<TextView
android:id="@+id/empty_subtitle_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/empty_title_text"
android:layout_centerHorizontal="true"
android:fontFamily="sans-serif"
android:paddingTop="8dp"
android:text="Let's start with adding books!"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="#A2AAB0" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
}
有什么方法可以在单独的(主)activity 中为视图设置约束?我该如何解决这个问题?
我已经试过了wrap_content
,我唯一能想到的就是手动设置它有点偏离顶部,这有点破坏约束布局的概念。
谢谢。
您不能在约束布局之外应用约束。问题出在父布局上,您的视图寻呼机似乎与选项卡布局重叠。
首先,不要在ConstraintLayout中使用match_parent
,例如。如果你想让视图匹配屏幕宽度,请使用
android:layout_width="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
它重叠的原因是您可能没有像
那样将列表(或列表容器)的顶部限制到此顶部视图的底部
app:layout_constraintTop_toBottomOf="@+id/top_view"
您的 ListView's
高度设置为 wrap_content
在这种情况下,它会根据需要扩展并与其他视图重叠。如果您想同时使用 wrap_content
和强制执行视图的约束,则需要将 app:layout_constrainedHeight="true"
属性添加到您的 ListView
.
我已经构建了一个带有 ListView
、空视图和总计数视图的约束布局片段。底部约束正在工作(尽管进行了人为调整),但顶部与我的 MainActivity
:
我的代码在这里,这是我第一次使用约束布局:
{
<?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">
<ListView
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/total_items_view"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.98"
tools:layout_editor_absoluteX="8dp" />
<TextView
android:id="@+id/total_items_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorOrange"
android:padding="4dp"
android:text="Items in this category: "
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintRight_toLeftOf="@id/items_number_view"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/items_number_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:backgroundTint="@color/colorOrange"
android:padding="4dp"
android:text="44"
android:textSize="28sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintLeft_toRightOf="@id/total_items_view" />
<RelativeLayout
android:id="@+id/empty_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"
android:visibility="gone">
<ImageView
android:id="@+id/empty_book_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/orange_orange_book" />
<TextView
android:id="@+id/empty_title_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/empty_book_image"
android:layout_centerHorizontal="true"
android:fontFamily="sans-serif-medium"
android:paddingTop="16dp"
android:text="This category is still empty..."
android:textAppearance="?android:textAppearanceMedium" />
<TextView
android:id="@+id/empty_subtitle_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/empty_title_text"
android:layout_centerHorizontal="true"
android:fontFamily="sans-serif"
android:paddingTop="8dp"
android:text="Let's start with adding books!"
android:textAppearance="?android:textAppearanceSmall"
android:textColor="#A2AAB0" />
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
}
有什么方法可以在单独的(主)activity 中为视图设置约束?我该如何解决这个问题?
我已经试过了wrap_content
,我唯一能想到的就是手动设置它有点偏离顶部,这有点破坏约束布局的概念。
谢谢。
您不能在约束布局之外应用约束。问题出在父布局上,您的视图寻呼机似乎与选项卡布局重叠。
首先,不要在ConstraintLayout中使用match_parent
,例如。如果你想让视图匹配屏幕宽度,请使用
android:layout_width="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
它重叠的原因是您可能没有像
那样将列表(或列表容器)的顶部限制到此顶部视图的底部app:layout_constraintTop_toBottomOf="@+id/top_view"
您的 ListView's
高度设置为 wrap_content
在这种情况下,它会根据需要扩展并与其他视图重叠。如果您想同时使用 wrap_content
和强制执行视图的约束,则需要将 app:layout_constrainedHeight="true"
属性添加到您的 ListView
.