I tried the new BottomSheet in Android support. Inside the BottomSheet I have put a TextView and a ScrollView. The BottomSheetshowing just fine, the only problem I found is that the ScrollView in the BottomSheet is not scrolling. Every time I try to scroll, either the layout in main activity that scroll or the BottomSheet changing state from collapse to expand.
This is snippet of my Activity Class code:
private BottomSheetBehavior behavior; View bottomSheet; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); setTextViewOnClickListener(this, findViewById(R.id.parentLayout)); CoordinatorLayout coordinatorLayout = (CoordinatorLayout) findViewById(R.id.main_content); // The View with the BottomSheetBehavior bottomSheet = coordinatorLayout.findViewById(R.id.bottom_sheet); behavior = BottomSheetBehavior.from(bottomSheet); behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() { @Override public void onStateChanged(@NonNull View bottomSheet, int newState) { // React to state change } @Override public void onSlide(@NonNull View bottomSheet, float slideOffset) { // React to dragging events } }); @Override public void onClick(View v) { switch (v.getId()) { case R.id.tv1: setTextViewHeader("Header1"); setTextViewContent("Long_Text_1"); break; case R.id.tv2: setTextViewHeader("Header2"); setTextViewContent("Long_Text_2"); break; case R.id.tv3: setTextViewHeader("Header3"); setTextViewContent("Long_Text_3"); break; default: break; } behavior.setPeekHeight(100); behavior.setState(BottomSheetBehavior.STATE_COLLAPSED); behavior.setHideable(true); bottomSheet.requestLayout(); } This is my Layout XML:
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout 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:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="com.rapidgrowsolutions.android.MainActivity"> <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height="wrap_content" 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.design.widget.AppBarLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:id="@+id/tv1" style="@style/LightRow" android:text="some_long_text_here" /> <TextView android:id="@+id/tv2" style="@style/DarkRow" android:text="another_long_text_here" /> <TextView android:id="@+id/tv3" style="@style/LightRow" android:text="another_long_text_here" /> </LinearLayout> <android.support.v4.widget.NestedScrollView android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="250dp" app:behavior_hideable="true" android:fillViewport="true" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <android.support.v7.widget.LinearLayoutCompat android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#FF7733" android:orientation="vertical"> <TextView android:id="@+id/tvID1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:text="HEADER" android:textAppearance="?android:attr/textAppearanceMedium" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="9" android:background="#ffb773" android:fillViewport="true"> <TextView android:id="@+id/tvID2" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#3377ff" android:textAppearance="?android:attr/textAppearanceSmall" /> </ScrollView> </android.support.v7.widget.LinearLayoutCompat> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>
NestedScrollView is just like ScrollView , but it supports acting as both a nested scrolling parent and child on both new and old versions of Android. Nested scrolling is enabled by default.
Hope you figured out this by now, but change View bottomSheet to NestedScrollView bottomSheet.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With