2016-09-15 7 views
3

私は自分のアプリでNestedScrollViewを開いていますが、これまでは画面の下部から開いています。どうすれば上から開くことができますか?bottomSheetを上から開く方法は?

app:layout_behavior="android.support.design.widget.BottomSheetBehavior" 

しかし、次のエラーでアプリがクラッシュ:

The view is not associated with BottomSheetBehavior 

画面の上から下シートを開く方法はあります

は、私は次の行を削除しようとしましたか?ここで

は私の活動である:ここでは

ViewPager mainViewPager; 
private BottomSheetBehavior mBottomSheetBehavior; 
int switcher = 1; 
View menuPopupView; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.workorder_selection_layout_with_fragment); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    ... 
    .... 
    ... 


    filterButton = (Button)  
    findViewById(R.id.filterButtonMainWorkorderSelection); 
    filterButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      if (switcher == 1) { 
       mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); 
       switcher = 2; 
      } else { 
       mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); 
       switcher = 1; 
      } 


     } 
    }); 

    /////////////////////////////////////////// 
    //////////////Buttom Sheet///////////////// 
    /////////////////////////////////////////// 

    View bottomSheet = findViewById(R.id.bottom_sheet); 

    mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); 


} 

は私のxmlです:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    app:layout_behavior="@string/appbar_scrolling_view_behavior" 
    tools:context="apps.radwin.wintouch.activities.alignmentActivities.WorkordersSelectionActivity" 
    tools:showIn="@layout/app_bar_workorders_selection"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:paddingTop="8dp" 
     android:theme="@style/AppTheme.AppBarOverlay"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:layout_scrollFlags="scroll|enterAlways" 
      app:popupTheme="@style/AppTheme.PopupOverlay"> 

     </android.support.v7.widget.Toolbar> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabsLayoutWorkorderSelection" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      /> 

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

    <android.support.v4.view.ViewPager 
     android:id="@+id/workorderSelectionMainViewPagerContainer" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:src="@drawable/add_workorders_plus" 
     android:layout_marginLeft="@dimen/fab_margin" 
     android:layout_marginRight="@dimen/fab_margin" 
     android:layout_marginBottom="@dimen/fab_margin" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentEnd="true" /> 


    <android.support.design.widget.CoordinatorLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto" 
     android:id="@+id/main_content" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:fitsSystemWindows="true"> 

     <android.support.v4.widget.NestedScrollView 
      android:id="@+id/bottom_sheet" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:clipToPadding="true" 
      android:background="#293339" 
      app:layout_behavior="android.support.design.widget.BottomSheetBehavior" 
      > 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerVertical="true" 
       android:layout_toStartOf="@+id/fab"> 


       ... 
       ... 
       ... 


       <View 
        android:layout_width="match_parent" 
        android:layout_height="20dp" 
        android:layout_below="@+id/workorderFilterPopup_CompleteImage" 
        ></View> 


      </RelativeLayout> 



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

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




</RelativeLayout> 

答えて

0

私はデザインによって、これは下から表示されるように意図されているので、それは、Googleの設計ライブラリを使用して可能ではないと思います。

https://material.io/guidelines/components/bottom-sheets.html
"ボトムシートが画面の下からスライドしてコンテンツを表示します。" Flipboardののbottomsheet

https://github.com/jernkuan/bottomsheet

のこの修正バージョンを使用してしようと

私はbottomsheetは、上から表示するかどうかを制御するためのattrを追加しました。

関連する問題