所以,我有一个布局,它成为我的BottomSheet
视图。 一切顺利,其peekHeight
与我的xml相匹配。就像下面的gif:
直到我决定在其中的SearchView
中输入(或者甚至只是点击)。
当应用程序首次运行时,在SearchView
的TextBox没有聚焦之前,它没有问题(仍然很整洁)。但是在它集中注意力之后,突然间底部的peekHeight
被修剪了。
Idk造成这种情况的原因,因为基本上没有以编程方式完成设置。我每次输入peekHeight
时都尝试以编程方式重置SearchView
,但没有运气。
到目前为止,我的解决方法是在XML中向peekHeight
右侧添加一些DP。它应该是80dp
,但我从XML(GIF没有一些附加DP)声明它100dp
。
在应用程序首次运行时会变得很难看,但在我点击SearchView
之后,这一切都很好,因为无论如何都要修剪额外的高度。
这是我的底部导航xml。 (与主xml上的<include layout=".."/>
一起使用)
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/bssf_cl_bottom_sheet"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:behavior_hideable="false"
app:behavior_peekHeight="80dp"
app:layout_behavior="android.support.design.widget.BottomSheetBehavior">
<ImageView
android:id="@+id/bssf_iv_search_by_algolia"
android:layout_width="wrap_content"
android:layout_height="20dp"
android:adjustViewBounds="true"
android:background="#80FFFFFF"
android:padding="@dimen/spacing_quarter"
android:src="@drawable/search_by_algolia"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<View
android:layout_width="0dp"
android:layout_height="0dp"
android:background="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/bssf_sv_search_box" />
<android.support.v7.widget.SearchView
android:id="@+id/bssf_sv_search_box"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@android:color/white"
android:theme="@style/AppTheme"
android:visibility="visible"
app:iconifiedByDefault="false"
app:layout_constraintBottom_toBottomOf="@id/bssf_iv_show_filter_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bssf_iv_search_by_algolia"
app:queryHint="Search" />
<ImageView
android:id="@+id/bssf_iv_show_filter_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="@dimen/spacing_single"
android:src="@drawable/ic_filter_list_white_24dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/bssf_iv_search_by_algolia" />
<TextView
android:id="@+id/bssf_tv_distance_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_single"
android:layout_marginTop="@dimen/spacing_single"
android:text="Any Distance"
app:layout_constraintHorizontal_chainStyle="spread_inside"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bssf_iv_show_filter_button" />
<TextView
android:id="@+id/bssf_tv_warning_location_not_turned_on"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_single"
android:layout_marginStart="@dimen/spacing_single"
android:drawablePadding="2dp"
android:drawableStart="@drawable/ic_warning_accent_16dp"
android:gravity="bottom"
android:text="Location is turned off. Tap to turn on"
android:textSize="@dimen/font_small"
app:layout_constraintBaseline_toBaselineOf="@id/bssf_tv_distance_label"
app:layout_constraintStart_toEndOf="parent" />
<SeekBar
android:id="@+id/bssf_sb_distance"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_single"
android:layout_marginStart="@dimen/spacing_single"
android:layout_marginTop="@dimen/spacing_half"
android:max="25"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bssf_tv_distance_label" />
<TextView
android:id="@+id/bssf_tv_price_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/spacing_single"
android:layout_marginTop="@dimen/spacing_single"
android:text="Any Price"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bssf_sb_distance" />
<SeekBar
android:id="@+id/bssf_sb_price"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:layout_marginTop="@dimen/spacing_half"
android:max="9"
app:layout_constraintEnd_toEndOf="@+id/bssf_sb_distance"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintStart_toStartOf="@+id/bssf_sb_distance"
app:layout_constraintTop_toBottomOf="@+id/bssf_tv_price_label" />
<TextView
android:id="@+id/bssf_tv_appetizer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_half"
android:layout_marginStart="@dimen/spacing_single"
android:layout_marginTop="@dimen/spacing_single"
android:background="@color/colorAccent"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/spacing_half"
android:text="Appetizer / Snack"
android:textAllCaps="true"
android:textColor="@android:color/white"
app:layout_constraintEnd_toStartOf="@+id/bssf_tv_main_course"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/bssf_sb_price" />
<TextView
android:id="@+id/bssf_tv_main_course"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_single"
android:layout_marginStart="@dimen/spacing_half"
android:background="@color/colorAccent"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/spacing_half"
android:text="Main Course"
android:textAllCaps="true"
android:textColor="@android:color/white"
app:layout_constraintBaseline_toBaselineOf="@id/bssf_tv_appetizer"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/bssf_tv_appetizer" />
<TextView
android:id="@+id/bssf_tv_dessert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/spacing_single"
android:layout_marginEnd="@dimen/spacing_half"
android:layout_marginStart="@dimen/spacing_single"
android:layout_marginTop="@dimen/spacing_single"
android:background="@color/colorAccent"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/spacing_half"
android:text="Dessert"
android:textAllCaps="true"
android:textColor="@android:color/white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/bssf_tv_beverage"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/bssf_tv_appetizer" />
<TextView
android:id="@+id/bssf_tv_beverage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/spacing_half"
android:layout_marginStart="@dimen/spacing_half"
android:background="@color/colorAccent"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/spacing_half"
android:text="Beverage"
android:textAllCaps="true"
android:textColor="@android:color/white"
app:layout_constraintBaseline_toBaselineOf="@id/bssf_tv_dessert"
app:layout_constraintEnd_toStartOf="@+id/bssf_tv_other"
app:layout_constraintStart_toEndOf="@+id/bssf_tv_dessert" />
<TextView
android:id="@+id/bssf_tv_other"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/spacing_single"
android:layout_marginStart="@dimen/spacing_half"
android:background="@color/colorAccent"
android:clickable="true"
android:focusable="true"
android:padding="@dimen/spacing_half"
android:text="Other"
android:textAllCaps="true"
android:textColor="@android:color/white"
app:layout_constraintBaseline_toBaselineOf="@id/bssf_tv_dessert"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/bssf_tv_beverage" />
任何人都知道如何解决这个问题?感谢
P.S。如果有人没有注意到差异,请注意第一个 gif,
SearchView
下面有一条灰线,仍然可见 崩溃/扩展之前/之后。但在第二个gif上,我点击后SearchView
,再也没有灰线(奇怪地被修剪)
P.S.S。哦,也许这个细节是相关的,但是如果我尝试显示Snackbar
,无论底部的状态(展开还是折叠),工作表都会跳到顶部,留下一个灰色区域(来自在底部工作表和屏幕底部的Snackbar
之间。甚至在点击SearchView
之前。在Snackbar
事件之后,gif 2上的事件发生了(即使尚未点击SearchView
)。就像下面的gif: