为什么底部工作表在主屏幕上?

时间:2017-06-08 09:38:18

标签: android

我正在尝试使用Bottom Sheet制作应用。但是当我运行应用程序时,底部工作表显示在主屏幕中。这意味着,底部工作表显示在主屏幕中而不单击按钮。为了清楚理解,下面已经证明了一张图片。 sample image

这是MainActivity.java类:

package com.example.qurdadzze.b;
import android.support.design.widget.BottomSheetBehavior;
import android.support.v4.widget.NestedScrollView;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
Button btn;
NestedScrollView bottomsheet;
BottomSheetBehavior behavior;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    btn = (Button) findViewById(R.id.btn);
    bottomsheet = (NestedScrollView) findViewById(R.id.bottomsheet);
    behavior = BottomSheetBehavior.from(bottomsheet);
    btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if(behavior.getState()==BottomSheetBehavior.STATE_COLLAPSED)
                behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
            else
                behavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
            behavior.setPeekHeight(0);
        }
    });
}

这是activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    tools:context="com.example.qurdadzze.b.MainActivity">

    <Button
        android:id="@+id/btn"
        android:layout_width="150dp"
        android:layout_height="50dp"
        android:text="show bottom sheet"/>

    <android.support.v4.widget.NestedScrollView
        android:layout_width="match_parent"
        android:layout_height="300dp"
        android:background="#99cc99"
        android:elevation="100dp"
        android:id="@+id/bottomsheet"
        app:layout_behavior="@string/bottom_sheet_behavior">

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textSize="20sp"
            android:layout_gravity="center|top"
            android:gravity="center"
            android:text="it is me Bottom Sheet"/>


    </android.support.v4.widget.NestedScrollView>

</android.support.design.widget.CoordinatorLayout>

1 个答案:

答案 0 :(得分:0)

你必须设置Bottomsheet的peekheight。

android.support.design:behavior_peekHeight折叠时底部纸张的高度。

尝试在NestedScrollView中使用以下代码:

app:behavior_peekHeight="50dp"

有关详细信息,请查看以下链接: http://www.truiton.com/2016/07/android-bottom-sheet-example/