当 Fragment 在工具栏下时如何解决这个问题?
How to fix this when Fragment is under the toolbar?
我需要有关此 xml 布局的帮助,因为我的 Fragment
在工具栏下方。
我尝试了各种布局属性,如 layout_below
等,但没有成功。另外 NavigationView
在工具栏下面。
像app:layout_constraintTop_toTopOf
这样的ConstraintLayout
如果我做容器ConstraintLayout
就没有效果
这是我的 xml 希望得到一些建议?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:autofit="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.port.android.ui.ActivityMain">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout_1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.port.android.ui.ActivityMain">
<android.support.constraint.ConstraintLayout
android:id="@+id/main_ConstraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
app:headerLayout="@layout/navigation_view_header"
app:menu="@menu/menu_navigation">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="horizontal"
android:padding="20dp">
<Button
android:id="@+id/btn_exit_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="exitAddress"
android:text="@string/exit_address" />
</LinearLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
尝试将 app:layout_behavior="@string/appbar_scrolling_view_behavior"
添加到您的 DrawerLayout。
在你的抽屉布局中尝试下面的布局
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.port.android.ui.ActivityMain"
android:layout_below="@+id/appBarLayout_1">
对于像我这样的人来说,最终会寻找该问题的答案。
我修复的方法是使用 <ConstraintLayout>
并将子 <FrameLayout>
layout_height
和 layout_width
更改为 "0dp"
等于 "MATCH_CONSTRAINT"。此外,您还应该添加一些约束属性,如下所示。
您的 <FrameLayout>
应如下所示:
<FrameLayout
android:id="@+id/fragment_placeholder"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintBottom_toTopOf="@id/navigation"
/>
希望对您有所帮助!
我需要有关此 xml 布局的帮助,因为我的 Fragment
在工具栏下方。
我尝试了各种布局属性,如 layout_below
等,但没有成功。另外 NavigationView
在工具栏下面。
像app:layout_constraintTop_toTopOf
这样的ConstraintLayout
如果我做容器ConstraintLayout
这是我的 xml 希望得到一些建议?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:autofit="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.port.android.ui.ActivityMain">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBarLayout_1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary">
</android.support.v7.widget.Toolbar>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.port.android.ui.ActivityMain">
<android.support.constraint.ConstraintLayout
android:id="@+id/main_ConstraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/frame"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
</FrameLayout>
</LinearLayout>
</android.support.constraint.ConstraintLayout>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
android:layout_marginBottom="15dp"
android:layout_marginTop="15dp"
app:headerLayout="@layout/navigation_view_header"
app:menu="@menu/menu_navigation">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="horizontal"
android:padding="20dp">
<Button
android:id="@+id/btn_exit_address"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="exitAddress"
android:text="@string/exit_address" />
</LinearLayout>
</android.support.design.widget.NavigationView>
</android.support.v4.widget.DrawerLayout>
</RelativeLayout>
尝试将 app:layout_behavior="@string/appbar_scrolling_view_behavior"
添加到您的 DrawerLayout。
在你的抽屉布局中尝试下面的布局
<android.support.v4.widget.DrawerLayout
android:id="@+id/drawer"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context="com.port.android.ui.ActivityMain"
android:layout_below="@+id/appBarLayout_1">
对于像我这样的人来说,最终会寻找该问题的答案。
我修复的方法是使用 <ConstraintLayout>
并将子 <FrameLayout>
layout_height
和 layout_width
更改为 "0dp"
等于 "MATCH_CONSTRAINT"。此外,您还应该添加一些约束属性,如下所示。
您的 <FrameLayout>
应如下所示:
<FrameLayout
android:id="@+id/fragment_placeholder"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/main_toolbar"
app:layout_constraintBottom_toTopOf="@id/navigation"
/>
希望对您有所帮助!