Giới thiệu
Ví dụ này minh họa cách tùy chỉnh kích thước (chiều rộng và cao) của AlertDialog mặc định sau khi hiển thị bằng WindowManager.LayoutParams.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.
Bước 2: Layout (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/relativeLayout"
tools:context=".MainActivity">
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hiển thị Alert Dialog"
android:layout_centerInParent="true" />
</RelativeLayout>
Bước 3: Code tùy chỉnh kích thước (MainActivity.java)
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.RelativeLayout;
public class MainActivity extends AppCompatActivity {
Button button;
RelativeLayout relativeLayout;
Context context;
Activity myActivity;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
relativeLayout = findViewById(R.id.relativeLayout);
context = getApplicationContext();
button = findViewById(R.id.button);
myActivity = MainActivity.this;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder builder = new AlertDialog.Builder(myActivity);
builder.setTitle("My Action Bar");
builder.setMessage("This is my custom Action bar, do you like it?");
builder.setPositiveButton("Yes", null);
builder.setNegativeButton("No", null);
AlertDialog alertDialog = builder.create();
alertDialog.show();
// Quan trọng: Phải gọi sau alertDialog.show()
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams();
layoutParams.copyFrom(alertDialog.getWindow().getAttributes());
layoutParams.width = WindowManager.LayoutParams.MATCH_PARENT;
layoutParams.height = WindowManager.LayoutParams.MATCH_PARENT;
alertDialog.getWindow().setAttributes(layoutParams);
}
});
}
}
Bước 4: Manifest (AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Chạy ứng dụng
Kết nối thiết bị, nhấn Run. Nhấn nút để xem AlertDialog mở rộng toàn màn hình.



Lưu ý: Phải gọialertDialog.show()trước khi truy cậpgetWindow(), nếu không sẽ bị NullPointerException.