我们如何设置折叠底部面板的最小高度?

4

我可以成功地添加峰值高度,但是当试图设置底部表的最小高度时,我无法这样做,整个表格都会被折叠。

所以我尝试将其展开在隐藏状态下,但对我来说不够,因为它变得太高了。

我的主要关注点是无论如何都不要隐藏底部表,如果它被隐藏或折叠,它必须重新出现并设置一个最小高度。

请提出建议:

以下是我的代码:

final View bottomSheet = findViewById(R.id.bottom_sheet2);
    mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet);
    mBottomSheetBehavior.setHideable(true);
    mBottomSheetBehavior.setPeekHeight(LinearLayout.LayoutParams.MATCH_PARENT);
    mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);

    mBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
        @Override
        public void onStateChanged(View bottomSheet, int newState) {
            if (newState == BottomSheetBehavior.STATE_EXPANDED) {

            }
            else if (newState == BottomSheetBehavior.STATE_HIDDEN) {
                mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            }
            else if (newState == BottomSheetBehavior.STATE_COLLAPSED) {

            }
        }

        @Override
        public void onSlide(View bottomSheet, float slideOffset) {
        }
    });

这是我的xml:

        <android.support.v4.widget.NestedScrollView
        android:id="@+id/bottom_sheet2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="45dp"
        android:clipToPadding="false"
        android:background="#00ffffff"
        app:layout_behavior="android.support.design.widget.BottomSheetBehavior">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:elevation="6dp"
            app:cardCornerRadius="10dp"
            android:layout_marginLeft="25dp"
            android:layout_marginRight="25dp"
            android:layout_height="wrap_content">

            <LinearLayout
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:orientation="vertical"
                android:layout_width="match_parent"
                android:background="#fff"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:layout_margin="10dp">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Rohit Lalwani"
                        android:id="@+id/postedBy"
                        android:textSize="16dp"
                        android:padding="10dp"
                        android:textColor="#333"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:text="Ad posted Yesterday"
                        android:id="@+id/postedTime"
                        android:textSize="13dp"
                        android:padding="10dp"
                        android:textColor="#333"/>
                </LinearLayout>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="1px"
                    android:background="@color/color2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginRight="15dp"/>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/Price"
                    android:text="₹ 2,00,000"
                    android:padding="15dp"
                    android:textSize="18dp"
                    android:textColor="@color/color1"
                    android:textStyle="bold"
                    android:layout_marginLeft="10dp"/>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/ProdName"
                    android:text="product name"
                    android:padding="10dp"
                    android:textSize="14dp"
                    android:textColor="#333"
                    android:textStyle="bold"
                    android:layout_marginLeft="15dp"/>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="1px"
                    android:background="@color/color2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginRight="15dp"/>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="15dp"
                    android:layout_marginLeft="5dp"
                    android:layout_marginRight="5dp"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat1Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat1Text"
                            android:text="categeory1"/>

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat2Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat2Text"
                            android:text="categeory2"/>

                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat3Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat3Text"
                            android:text="categeory1"/>

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat4Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat4Text"
                            android:text="categeory2"/>

                    </LinearLayout>

                </LinearLayout>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:orientation="horizontal">

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat5Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat5Text"
                            android:text="categeory1"/>

                    </LinearLayout>

                    <LinearLayout
                        android:layout_width="0px"
                        android:layout_height="wrap_content"
                        android:layout_weight="1"
                        android:padding="5dp"
                        android:orientation="horizontal">

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="1"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat6Icon"
                            android:text="55"/>

                        <TextView
                            android:layout_width="0px"
                            android:layout_height="wrap_content"
                            android:layout_weight="4"
                            android:textSize="16dp"
                            android:textColor="@color/color2"
                            android:id="@+id/cat6Text"
                            android:text="categeory2"/>

                    </LinearLayout>

                </LinearLayout>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="1px"
                    android:background="@color/color2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="15dp"/>

                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="vertical"
                    android:layout_margin="10dp">

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:textSize="10dp"
                        android:padding="10dp"
                        android:textColor="@color/color2"
                        android:id="@+id/distance"
                        android:text="5 Km away"/>

                    <TextView
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:textSize="12dp"
                        android:id="@+id/location"
                        android:textColor="#333"
                        android:padding="10dp"
                        android:text="Alwar, Basant Vihar"/>

                </LinearLayout>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="1px"
                    android:background="@color/color2"
                    android:layout_marginLeft="15dp"
                    android:layout_marginTop="5dp"
                    android:layout_marginRight="15dp"/>

                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:id="@+id/description"
                    android:text="Full description about the product"
                    android:padding="10sp"
                    android:layout_margin="5dp"/>

            </LinearLayout>

        </android.support.v7.widget.CardView>
    </android.support.v4.widget.NestedScrollView>
2个回答

9

您只需要像下面的示例一样将behavior_peekHeight定义为某个值,将behavior_hideable定义为false:

<android.support.v4.widget.NestedScrollView
android:id="@+id/ores_bottom_sheet"
android:layout_width="match_parent"
android:layout_height="200dp"
app:behavior_hideable="false"
app:behavior_peekHeight="90dp">

在我的情况下,有人在代码中设置了bottomSheetBehavior.peekHeight = 100 - CoolMind

0

尝试在NestedScrollView中使用paddingBottom而不是layout_marginBottom。有时候,当您使用padding时,布局会更好地理解间距。如果这样做不起作用,请尝试将NestedScrollView包装在另一个布局视图(FrameLayout、LinearLayout等)中,并在该视图上放置边距或填充。这样,外部视图将始终保留最小高度。


我想设置BottomSheet的最小高度。 - Rohit Lalwani

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接