[:ru]В этом уроке вы узнаете, как реализовать в андроид-приложении элемент bottom sheet из библиотеки материального дизайна. Bottom sheet переводится как “нижний слой” или “нижний лист”. Это информационная панель. заголовок которой появляется внизу экрана. Основное содержимое панели можно увидеть, потянув bottom sheet вверх за заголовок.
Исходный код:
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/mainContent" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="dev.edmt.bottomsheetdemo.MainActivity"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="24dp" > <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 1" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_green_dark" ></Button> <Button android:id="@+id/button_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 2" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_blue_dark" ></Button> <Button android:id="@+id/button_3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 3" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_red_dark" ></Button> </LinearLayout> </ScrollView> <android.support.v4.widget.NestedScrollView android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="350dp" android:clipToPadding="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="Bottom Sheets" android:paddingTop="16dp" android:textSize="16sp"/> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>
import android.support.design.widget.BottomSheetBehavior; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private BottomSheetBehavior mBottomSheetBehavior; boolean isClick=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View bottomSheet = findViewById(R.id.bottom_sheet); mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); Button button1 = (Button)findViewById(R.id.button_1); Button button2 = (Button)findViewById(R.id.button_2); Button button3 = (Button)findViewById(R.id.button_3); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.button_1: if(isClick==false) mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); else mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); isClick=!isClick; break; default: break; } } }
[:en]In this lesson you will learn how to implement in Android application element bottom sheet from material design library. This is an informational panel. a title which appears at the bottom of the screen. The main toolbar contents can be seen by pulling the bottom sheet up over the title.
Source code:
<?xml version="1.0" encoding="utf-8"?> <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/mainContent" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" tools:context="dev.edmt.bottomsheetdemo.MainActivity"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:paddingTop="24dp" > <Button android:id="@+id/button_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 1" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_green_dark" ></Button> <Button android:id="@+id/button_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 2" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_blue_dark" ></Button> <Button android:id="@+id/button_3" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Button 3" android:padding="16dp" android:layout_margin="8dp" android:textColor="@android:color/white" android:background="@android:color/holo_red_dark" ></Button> </LinearLayout> </ScrollView> <android.support.v4.widget.NestedScrollView android:id="@+id/bottom_sheet" android:layout_width="match_parent" android:layout_height="350dp" android:clipToPadding="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="Bottom Sheets" android:paddingTop="16dp" android:textSize="16sp"/> </android.support.v4.widget.NestedScrollView> </android.support.design.widget.CoordinatorLayout>
import android.support.design.widget.BottomSheetBehavior; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity implements View.OnClickListener { private BottomSheetBehavior mBottomSheetBehavior; boolean isClick=false; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View bottomSheet = findViewById(R.id.bottom_sheet); mBottomSheetBehavior = BottomSheetBehavior.from(bottomSheet); Button button1 = (Button)findViewById(R.id.button_1); Button button2 = (Button)findViewById(R.id.button_2); Button button3 = (Button)findViewById(R.id.button_3); button1.setOnClickListener(this); button2.setOnClickListener(this); button3.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.button_1: if(isClick==false) mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED); else mBottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED); isClick=!isClick; break; default: break; } } }