1
API21 후에 이전 대화 상자에서 제목이 사라지는 것을 발견했습니다. 최소한의 샘플 코드는이Dialogfragment를 만들어서 Dialog가 API 21 이후 title을 가질 수 있도록해야합니까?
public class MainActivity extends AppCompatActivity {
private Button btn1;
private Dialog testDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
testDialog = new Dialog(MainActivity.this);
btn1 = (Button) findViewById(R.id.btnClick);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCopyDialog("some test");
}
});
}
private void showCopyDialog(final String address) {
testDialog.setTitle(address);
testDialog.setContentView(R.layout.copy_chip_dialog_layout);
testDialog.setCancelable(true);
testDialog.setCanceledOnTouchOutside(true);
Button button = (Button)testDialog.findViewById(android.R.id.button1);
String buttonTitle = "Button Title";
button.setText(buttonTitle);
testDialog.show();
}
}
그리고 API24과 API26에, 그것은 제목을 표시 할 수 없습니다 동안 아직도 제목을 표시 할 수 있습니다 API21에서 copy_chip_dialog_layout
<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Copy Addresses"
android:id="@android:id/button1"
android:background="@null"
android:layout_gravity="left"/>
의 레이아웃처럼, 난 궁금 해요 제목을 추가하려면 DialogFragment를 만들어야합니다.
을 그래서 기본적 희망 당신 Dialog를 직접 사용할 수 없습니까? – litaoshen
appcompat 라이브러리의 Alertdialog는 이전 API와 새로운 API를 완벽하게 지원합니다. –