展开折叠工具栏时如何显示布局

问题描述 投票:0回答:1

我想在展开时显示CollapsingToolbarLayout中的布局。我看到了很多人添加ImageView并起作用的示例。但是由于某些原因,我的布局无法正确渲染。

这是我希望它的表现方式:

android studio preview

这就是渲染的内容:

rendered on device

我不想要标题,但要扩展它时的布局。

这是我的代码:

AppBarLayout

<com.google.android.material.appbar.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:fitsSystemWindows="true"
    android:theme="@style/AppTheme.AppBarOverlay">

    <com.google.android.material.appbar.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:toolbarId="@+id/toolbar"
        android:animateLayoutChanges="true">

        <include
            layout="@layout/add_expense_form"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_collapseMode="pin"/>

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/AppTheme.PopupOverlay"
            app:title="SOMELONGTITLE"
            />

    </com.google.android.material.appbar.CollapsingToolbarLayout>
</com.google.android.material.appbar.AppBarLayout>

add_expense_form.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:ignore="MissingDefaultResource"
    >


    <com.google.android.material.card.MaterialCardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="8dp"
        android:elevation="@dimen/cardview_elevation"
        app:cardCornerRadius="@dimen/cardview_radius">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="8dp">

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/layout_AmountInput"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                app:layout_constraintStart_toStartOf="parent">

                <TextView
                    android:id="@+id/textView"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="4dp"
                    android:text="@string/amount_tv"
                    android:textSize="16sp"
                    android:textStyle="bold"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <EditText
                    android:id="@+id/editText_Amount"
                    android:layout_width="140dp"
                    android:layout_height="wrap_content"
                    android:gravity="center_horizontal"
                    android:hint="@string/input_amount"
                    android:inputType="numberDecimal"
                    android:textSize="20sp"
                    android:textStyle="bold"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/layout_description"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/layout_AmountInput">

                <EditText
                    android:id="@+id/editText_Description"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:hint="@string/description"
                    android:inputType="textAutoCorrect"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintHorizontal_bias="0.0"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="1.0" />


            </androidx.constraintlayout.widget.ConstraintLayout>

            <androidx.constraintlayout.widget.ConstraintLayout
                android:id="@+id/layout_buttons"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@id/layout_description"
                android:layout_marginBottom="4dp">

                <Button
                    android:id="@+id/button_save"
                    android:layout_width="140dp"
                    android:layout_height="wrap_content"
                    android:text="Save"
                    android:background="@drawable/button"
                    android:minHeight="40dp"
                    android:textColor="@color/icons"
                    android:textStyle="bold"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintEnd_toEndOf="parent"
                    app:layout_constraintTop_toTopOf="parent"
                    app:layout_constraintVertical_bias="0.0" />


                <ImageButton
                    android:id="@+id/button_EditTimestamp"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:background="@color/icons"
                    android:src="@drawable/ic_event_black_24dp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toStartOf="parent"
                    app:layout_constraintTop_toTopOf="parent" />

                <TextView
                    android:id="@+id/textView_Timestamp"
                    android:layout_width="100dp"
                    android:layout_height="wrap_content"
                    android:layout_alignParentTop="true"
                    android:layout_marginStart="8dp"
                    android:text="timestamp"
                    app:layout_constraintBottom_toBottomOf="parent"
                    app:layout_constraintStart_toEndOf="@+id/button_EditTimestamp"
                    app:layout_constraintTop_toTopOf="parent" />


            </androidx.constraintlayout.widget.ConstraintLayout>

        </RelativeLayout>

    </com.google.android.material.card.MaterialCardView>

</RelativeLayout>
android android-layout android-toolbar android-collapsingtoolbarlayout
1个回答
0
投票

您可以通过编程方式完成:

public class ActivityName extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // remove title
         requestWindowFeature(Window.FEATURE_NO_TITLE);

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.main);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.