【Android】BottomSheetDialogの実装方法メモ
こんな感じで実装出来た!
開発環境
Android Studio = 3.5.3
compileSdkVersion = 29
targetSdkVersion = 29
minSdkVersion = 21
サポート ライブラリ = Androidx
Lang = Java
ソース
openDialogメソッドに書いてあります。
ボタンとかレイアウトは適当です。
package com.hiropon.test; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.ImageButton; import android.widget.Toast; import com.google.android.material.bottomsheet.BottomSheetDialog; public class MainActivity extends AppCompatActivity { private BottomSheetDialog dialog; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btnPlayer1 = findViewById(R.id.Button1); btnPlayer1.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { openDialog(); } }); Button btnPlayer2 = findViewById(R.id.Button2); btnPlayer2.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { openDialog(); } }); } private void openDialog() { View view = getLayoutInflater().inflate(R.layout.layout_bottom_sheet, null); dialog = new BottomSheetDialog(this); dialog.setContentView(view); ImageButton btn1 = (ImageButton) view.findViewById(R.id.btn1); btn1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(),"ImageButton1が押されました",Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); ImageButton btn2 = (ImageButton) view.findViewById(R.id.btn2); btn2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(),"ImageButton2が押されました",Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); ImageButton btn3 = (ImageButton) view.findViewById(R.id.btn3); btn3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(),"ImageButton3が押されました",Toast.LENGTH_SHORT).show(); dialog.dismiss(); } }); dialog.show(); } }
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" tools:context=".MainActivity"> <Button android:id="@+id/Button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.306" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.498" /> <Button android:id="@+id/Button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Button2" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.709" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.498" /> </androidx.constraintlayout.widget.ConstraintLayout>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:background="#ffffff"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:orientation="vertical"> <ImageButton android:id="@+id/btn1" android:layout_width="48dp" android:layout_height="48dp" android:background="@mipmap/ic_launcher" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Button1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:orientation="vertical"> <ImageButton android:id="@+id/btn2" android:layout_width="48dp" android:layout_height="48dp" android:background="@mipmap/ic_launcher" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Button2"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:gravity="center" android:orientation="vertical"> <ImageButton android:id="@+id/btn3" android:layout_width="48dp" android:layout_height="48dp" android:background="@mipmap/ic_launcher" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:text="Button3"/> </LinearLayout> </LinearLayout>