您好我正在尝试制作一个从android屏幕底部出现的对话框。在搜索时我发现我可以使用BottomSheetDialog。现在我想在BottomSheetDialog中使用带有imageview的可折叠工具栏。我想显示DETAILS
(当名称,信息,手机号码等作为简单的文本视图时)我的图像在向上滚动时折叠。
我的问题是:
1.当我添加布局NestedScrollView以显示DETAILS时,文本最初与图像重叠,但是当图像折叠时,文本不再与图像重叠。文本位置保持固定,向上滚动时图像不会向上移动,滚动体验非常非常差。
2.当我添加线性布局以显示DETAILS时,文本出现在我的可折叠工具栏图像上。
这是我的对话框布局文件:
<?xml version="1.0" encoding="utf-8"?>
android.support.design.widget.CoordinatorLayout 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"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/profile_activity_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<ImageView
android:id="@+id/panel_profile_picture"
android:layout_width="match_parent"
android:layout_height="400dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
<!--<android.support.v7.widget.Toolbar-->
<!--android:id="@+id/toolbar"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="?attr/actionBarSize"-->
<!--app:layout_collapseMode="parallax"-->
<!--app:popupTheme="@style/AppTheme.PopupOverlay" />-->
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<!--<ADD A LAYOUT HERE TO SHOW TEXTVIEW FOR DETAILS LIKE NAME,INFORMATION ETC>-->
</android.support.design.widget.CoordinatorLayout>
在活动中触摸卡片时会出现bottomSheetDialog。这是我的代码,显示了bottomSheetDialog:
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/profile_activity_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<ImageView
android:id="@+id/panel_profile_picture"
android:layout_width="match_parent"
android:layout_height="400dp"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
<!--<android.support.v7.widget.Toolbar-->
<!--android:id="@+id/toolbar"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="?attr/actionBarSize"-->
<!--app:layout_collapseMode="parallax"-->
<!--app:popupTheme="@style/AppTheme.PopupOverlay" />-->
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<!--<ADD A LAYOUT HERE TO SHOW TEXTVIEW FOR DETAILS LIKE NAME,INFORMATION ETC>-->
</android.support.design.widget.CoordinatorLayout>
在不折衷可折叠工具栏的情况下,我应该使用什么来很好地展示我的DETAILS?我希望当我的图像折叠并向上移动时,texview会出现,并且在向上滚动时也会向上移动。
PS:请评论是否需要发布任何不清楚或更相关的代码。 TIA
答案 0 :(得分:0)
我找到了符合我目的的内容。我使用FrameLayout
将应用行为设为app:layout_behavior="@string/appbar_scrolling_view_behavior"
因此,当您触摸图像并向上滚动时,图像会折叠,并且滚动时细节也会向上移动。但是,通过触摸细节,图像无法折叠布局和向上滚动。一个人必须触摸图像并向上滚动。在找到更好的解决方案之前,这符合我的目的。
所以我的底页对话框的布局文件是:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 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"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<android.support.design.widget.AppBarLayout
android:id="@+id/app_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/profile_activity_collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:contentScrim="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways|enterAlwaysCollapsed">
<ImageView
android:id="@+id/panel_profile_picture"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:scaleType="centerCrop"
app:layout_collapseMode="parallax"
app:layout_collapseParallaxMultiplier="0.7" />
<!--<android.support.v7.widget.Toolbar-->
<!--android:id="@+id/toolbar"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="?attr/actionBarSize"-->
<!--app:layout_collapseMode="parallax"-->
<!--app:popupTheme="@style/AppTheme.PopupOverlay" />-->
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is detial 1"
android:padding="20dp"
android:gravity="center"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is detial 2"
android:padding="20dp"
android:gravity="center"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="This is detial 3"
android:padding="20dp"
android:gravity="center"/>
</LinearLayout>
</FrameLayout>
</android.support.design.widget.CoordinatorLayout>
`