2017-06-08 19 views
1

私はボトムシートでアプリを作ろうとしています。しかし、私はアプリを実行すると、ボトムシートがメイン画面に表示されます。つまり、ボタンをクリックせずにメイン画面にボトムシートが表示されます。イメージは明確な理解のために下に証明されています。 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> 

答えて

0

あなたはBottomsheetのpeekheightを設定する必要があります。

android.support.design:behavior_peekHeight折りたたまれているときのボトムシートの高さ。

はあなたのNestedScrollViewのコードの下に使用してみてください:詳細については

app:behavior_peekHeight="50dp" 

は、下のリンクをチェックしてください。 http://www.truiton.com/2016/07/android-bottom-sheet-example/

関連する問題