試してみたいBottomSheetDialogがAndroidサポートライブラリ23.2に導入されましたが、正しく動作していないようです。BottomSheetDialogの使い方は?
BottomSheetBehaviorは、永続的な底面シートケースを取り込みながら、このリリースではまた、モーダルボトムシートはケースを使用埋めるためにBottomSheetDialogと BottomSheetDialogFragmentを提供しています。ここではドキュメントが言うことです。 AppCompatDialogまたはAppCompatDialogFragmentを ボトムシートに置き換えて、ダイアログボックスの下部を シートにするだけです。「
だから私はBottomSheetDialog
に私のAppCompatDialog
を変更:ここで
package my.package.ui.dialog;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.support.design.widget.BottomSheetDialog;
import my.package.R;
public class AccountActionsDialog extends BottomSheetDialog {
public AccountActionsDialog(Context context) {
super(context);
if (context instanceof Activity) {
setOwnerActivity((Activity) context);
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutInflater().inflate(R.layout.dialog_account_actions, null));
}
}
は私のレイアウトファイルです:
<?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="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#ff0000"
android:padding="16dp"
android:text="Delete account"
android:textColor="#ffffff" />
</LinearLayout>
その後、私は私の活動に次のコードを使用します。
new AccountActionsDialog(this).show();
画面が淡色表示になりますが、ダイアログの内容は表示されません。何が欠けているかもしれないかについての考えはありますか?代わりにAppCompatDialogを使用すると正常に動作します。
あなたは 'setContentView(R.layout.dialog_account_actionsを)'を使用していない特別な理由がありますか? – ianhanniballake
はい。最初はルートビューを最初に展開し、findViewById()を使用して必要なすべてのサブビューを見つけ出し、適切なリスナーを設定しました。私はこの例のコードを単純化し、この部分を変更するのを忘れました。レイアウトはどのように設定されていても問題は残ります。 –
これはサポートライブラリのバグです。b.android.comに小さなサンプルプロジェクトを作成してリンクを張ってください。私はそれをチームに持ち出すことができます。さらにクレイジーな動作のために、 LinearLayout'を〜250dpの高さに設定します。 – ianhanniballake