如何让水平进度条保持在工具栏的顶部

时间:2015-08-09 08:13:10

标签: android android-toolbar

行动栏

以前,使用操作栏时,在操作栏顶部设置水平进度条非常简单。通过代码

@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_PROGRESS);

我们可以

enter image description here

工具栏

现在,我希望通过使用AppCompat Toolbar来实现相同的外观。在不添加水平进度条的情况下,我的工具栏看起来就是这样

enter image description here

通过以下布局添加水平进度条后。

<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:minHeight="?attr/actionBarSize"
    android:background="?attr/colorPrimary"
    android:elevation="4dp"
    app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >

    <!-- android:elevation="4dp" is used due to http://www.google.com/design/spec/what-is-material/elevation-shadows.html#elevation-shadows-elevation-android- -->

    <ProgressBar
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="fill_parent"
        android:layout_height="2dp"
        android:id="@+id/progress"
        android:layout_gravity="top"
        android:gravity="top"
        android:max="100" android:progress="45"/>

</android.support.v7.widget.Toolbar>

但是,这就是我得到的

enter image description here

  1. 水平进度条不在工具栏顶部,但我通过toplayout_gravity进行了专门的gravity
  2. 工具栏标题文字消失。
  3. 我在想,有什么我错过的吗?

1 个答案:

答案 0 :(得分:3)

使用垂直LinearLayout作为根目录:

<LinearLayout
    android:orientation="vertical"
    android:background="?attr/colorPrimary">

    <ProgressBar />

    <android.support.v7.widget.Toolbar />

</LinearLayout>

或者@CheokYanCheng在评论中说,您可能希望使用FrameLayout来避免推动效果。

<FrameLayout
    android:gravity="top"
    android:background="?attr/colorPrimary">

    <android.support.v7.widget.Toolbar />

    <ProgressBar />

</FrameLayout>