Android bottom sheet display format

Hi, I am trying to implement a simple Android Bottom sheet, and my used xml is the following:

MY 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" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Effects" android:id="@+id/effects" android:textStyle="italic"/> <!--contains my layout for buttons, nested layout etc etc--> </LinearLayout <android.support.v4.widget.NestedScrollView android:id="@+id/color_effects_bottom_sheet" android:layout_width="match_parent" android:layout_height="350dp" android:clipToPadding="true" app:behavior_hideable="true" android:background="@android:color/holo_orange_light" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Please Set the Color Effects here!" android:padding="16dp" android:textSize="16sp"/> </android.support.v4.widget.NestedScrollView> 


The code behind this XML is as follows:

Code for

public class MainActivity extends the action {

 //Variables for bottom sheets calls private Button btn_effects; private BottomSheetBehavior mBottomSheetBehavior; private CoordinatorLayout coordinatorLayout; //////////////////////////////////// @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //locate coordinator layout coordinatorLayout=(CoordinatorLayout)findViewById(R.id.main_content); //locate bottom sheet View color_bottomSheet = coordinatorLayout.findViewById( R.id.color_effects_bottom_sheet); //View scene_bottomSheet = coordinatorLayout.findViewById( R.id.scenes_bottom_sheet); //effects button btn_effects=(Button)findViewById(R.id.effects); //scenes button btn_scenes=(Button)findViewById(R.id.scenes); //settings button btn_settings=(Button)findViewById(R.id.settings); //bottom sheet behavior mBottomSheetBehavior = BottomSheetBehavior.from(color_bottomSheet); //effects button listener btn_effects.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); } }); } 

}


Problem

The problem is that when I try to run this code, it resets my application and throws this exception all the time.

An exception

 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.bottomsheetexample, PID: 22875 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.bottomsheetexample/com.example.bottomsheetexample.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2469) at android.app.ActivityThread.access$1100(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5551) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:730) at dalvik.system.NativeStart.main(Native Method) Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout at android.view.LayoutInflater.createView(LayoutInflater.java:640) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:409) at android.view.LayoutInflater.inflate(LayoutInflater.java:358) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:305) at android.app.Activity.setContentView(Activity.java:1959) at com.example.junaidhassan.bottomsheetexample.MainActivity.onCreate(MainActivity.java:23) at android.app.Activity.performCreate(Activity.java:5310) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2381) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2469)at android.app.ActivityThread.access$1100(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5551) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:730) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createView(LayoutInflater.java:614) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:409) at android.view.LayoutInflater.inflate(LayoutInflater.java:358) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:305) at android.app.Activity.setContentView(Activity.java:1959) at com.example.bottomsheetexample.MainActivity.onCreate(MainActivity.java:23) at android.app.Activity.performCreate(Activity.java:5310) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2381) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2469)at android.app.ActivityThread.access$1100(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5551) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:730) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34) at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:182) at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:176) at java.lang.reflect.Constructor.constructNative(Native Method) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at android.view.LayoutInflater.createView(LayoutInflater.java:614) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:716) at android.view.LayoutInflater.inflate(LayoutInflater.java:489) at android.view.LayoutInflater.inflate(LayoutInflater.java:409) at android.view.LayoutInflater.inflate(LayoutInflater.java:358) at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:305) at android.app.Activity.setContentView(Activity.java:1959) at com.example.bottomsheetexample.MainActivity.onCreate(MainActivity.java:23) at android.app.Activity.performCreate(Activity.java:5310) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1088) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2381) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2469)at android.app.ActivityThread.access$1100(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1362) at android.os.Handler.dispatchMessage(Handler.java:110) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:5551) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:914) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:730) at dalvik.system.NativeStart.main(Native Method) 

Need

I am mainly trying to implement bottom sheets for the first time. I want to add a few bottom sheets to find out how to use them in an application.

My activity is full-screen activity with the following application theme

 android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen"> 

I want to use full-screen activity and I want to implement several bottom sheets on the buttons for listening to the buttons!

+1
source share
3 answers
  <style name="Theme.AppCompat.Light.NoActionBar.FullScreen" parent="@style/Theme.AppCompat.Light"> <item name="windowNoTitle">true</item> <item name="windowActionBar">false</item> <item name="android:windowFullscreen">true</item> <item name="android:windowContentOverlay">@null</item> </style> 

I need to set a custom style in order to use full-screen activity to use multiple lower screens!

Whole code

 <?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" android:id="@+id/main_content" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="Effects" android:id="@+id/effects" android:textStyle="italic"/> <!--contains my layout for buttons, nested layout etc etc--> </LinearLayout <android.support.v4.widget.NestedScrollView android:id="@+id/color_effects_bottom_sheet" android:layout_width="match_parent" android:layout_height="350dp" android:clipToPadding="true" app:behavior_hideable="true" android:background="@android:color/holo_orange_light" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Please Set the Color Effects here!" android:padding="16dp" android:textSize="16sp"/> </android.support.v4.widget.NestedScrollView> <android.support.v4.widget.NestedScrollView android:id="@+id/second_bottom_sheet" android:layout_width="match_parent" android:layout_height="350dp" android:clipToPadding="true" app:behavior_hideable="true" android:background="@android:color/holo_orange_light" app:layout_behavior="android.support.design.widget.BottomSheetBehavior"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Please Set the Scene Effects here!" android:padding="16dp" android:textSize="16sp"/> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout> 

The fact is that you can use the second bottom sheet in the same way as the first bottom sheet.

My problem was to use fullscreen activity and used AppCompat theme and activity. So I used custom theme activity, and here it goes!

0
source

As stated in your crashlog Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library change the theme of your application to the above

0
source

Add the line below to your gradle application if using android studio:

 compile 'com.android.support:design:23.4.0' 
0
source

All Articles