如何即使在滚动时也始终在Android中显示工具栏?

时间:2018-08-06 11:41:30

标签: java android layout kotlin

在网站上查找了各种答案和建议后,我在应用程序中实现了自定义工具栏,而不是使用默认的ActionBar。在大多数情况下,它可以正常工作,但是,与标准操作栏不同的一件事是,每当我滚动时它都会自动隐藏。在默认的ActionBar中,无论我是否滚动,它始终在活动上可见。谁能解释一下如何在自定义工具栏中实现此行为?我在下面附加了我的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"
tools:context=".MainActivity">

<ScrollView
    android:id="@+id/sc1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="8dp"
    android:layout_marginEnd="0dp"
    android:layout_marginLeft="0dp"
    android:layout_marginRight="0dp"
    android:layout_marginStart="0dp"
    android:layout_marginTop="0dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="1.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="1.0">


    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:id="@+id/searchBar"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:ems="10"
            android:hint="Search..."
            android:textColorHint="@color/myWhite"
            android:inputType="textPersonName"
            android:textColor="@color/myWhite"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.503"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/subtitleBtn" />

        <android.support.v7.widget.Toolbar
            android:id="@+id/myToolbar"
            android:layout_alignParentBottom="true"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="@color/colorPrimary"
            app:titleTextColor="@color/myWhite"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            android:contentInsetLeft="48dp"
            android:contentInsetStart="48dp"
            app:titleMarginStart="24dp"
            app:contentInsetLeft="12dp"
            app:contentInsetStart="12dp"
            android:contentInsetRight="0dp"
            android:contentInsetEnd="0dp"
            app:contentInsetRight="0dp"
            app:contentInsetEnd="0dp"/>

        <Button
            android:id="@+id/splitDrawableBackgroundBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Split Drawable Background"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.517"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/stackedDrawableBackgroundBtn" />

        <Button
            android:id="@+id/subtitleBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Show Subtitle"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/iconBtn" />

        <Button
            android:id="@+id/iconBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Icon"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/alternateBackBtn" />

        <Button
            android:id="@+id/alternateBackBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Alternate Back Button"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/hideBarBtn" />

        <Button
            android:id="@+id/hideBarBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Hide Action Bar"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/elevationBtn" />

        <Button
            android:id="@+id/elevationBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Elevation"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/logoBtn" />

        <Button
            android:id="@+id/logoBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Logo"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/hideAllBtn" />

        <Button
            android:id="@+id/hideAllBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Hide Everything"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/hideBackBtn" />

        <Button
            android:id="@+id/hideBackBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Hide Back Button"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintHorizontal_bias="0.502"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/splitDrawableBackgroundBtn" />

        <Button
            android:id="@+id/stackedDrawableBackgroundBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Stacked Drawable Background"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/drawableBackgroundBtn" />

        <Button
            android:id="@+id/drawableBackgroundBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Set Drawable Background"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/customViewBtn" />

        <Button
            android:id="@+id/customViewBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Show Custom View"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/hideOffsetBtn" />

        <Button
            android:id="@+id/hideOffsetBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Hide Offset"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/backBtn" />

        <Button
            android:id="@+id/backBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="24dp"
            android:text="Show back button"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/titleBtn" />

        <Button
            android:id="@+id/titleBtn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginEnd="8dp"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:layout_marginStart="8dp"
            android:layout_marginTop="88dp"
            android:text="Set Title"
            android:fontFamily="@font/roboto_black"
            android:textAllCaps="false"
            android:textSize="20sp"
            android:textStyle="bold"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent" />
    </android.support.constraint.ConstraintLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>

4 个答案:

答案 0 :(得分:1)

由于工具栏位于滚动视图内部,因此它将滚动。
取出并将其约束到“约束布局”的顶部。

答案 1 :(得分:0)

请将工具栏放在scrollview之前。然后它变得不可滚动,其余区域可滚动

答案 2 :(得分:0)

您的PropertyToolbar中,您可以将其放在Scrollview上方以解决此问题。这样您的代码将如下所示,

CoordinatorLayout

答案 3 :(得分:0)

将工具栏移至滚动视图的一侧

您的视图层次结构应如下所示:

<LinearLayout>
  <Toolbar/>
  <FrameLayout>
    <ScrollView/>
  </FrameLayoyt>
</LinearLayout>