Android底部图片Peek高度在搜索视图内部被点击后被修剪

时间:2018-01-07 18:10:29

标签: android bottom-sheet

所以,我有一个布局,它成为我的BottomSheet视图。 一切顺利,其peekHeight与我的xml相匹配。就像下面的gif:

enter image description here

直到我决定在其中的SearchView中输入(或者甚至只是点击)。

当应用程序首次运行时,在SearchView的TextBox没有聚焦之前,它没有问题(仍然很整洁)。但是在它集中注意力之后,突然间底部的peekHeight被修剪了。

enter image description here

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:

enter image description here

0 个答案:

没有答案