自定義dialog設置大小、設置背景圓角無效等一些坑

經常安卓開發要用蘋果風格的東西,比如dialog

dialog.png

直接上代碼

public class SimpleDialog extends AlertDialog {
    private String title;
    private String left;
    private String right;
    private View.OnClickListener listener;

    public SimpleDialog(@NonNull Context context,String title,String left,String right, View.OnClickListener listener) {
        super(context);
        this.title = title;
        this.left = left;
        this.right = right;
        this.listener = listener;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog_simple);
//這里是設置寬度,不設置的話是有一個margin值的match_parent效果。
        Window window = getWindow();
        WindowManager.LayoutParams lp = window.getAttributes();
        lp.width = SizeUtils.dp2px(250F);
        window.setAttributes(lp);
//如果你是圓角之類的話,這句設置背景透明要加上。
//否則有個白底在那兒,你的dialog也是白色的話是看不到圓角的
        window.setBackgroundDrawableResource(android.R.color.transparent);
//dialog是可以直接findViewById的,拿到控件后設置文字、點擊
        TextView tvTitle = (TextView) findViewById(R.id.tv_title);
        TextView tvLeft = (TextView) findViewById(R.id.tv_left);
        TextView tvRight = (TextView) findViewById(R.id.tv_right);
        tvTitle.setText(title);
        tvLeft.setText(left);
        tvRight.setText(right);
        tvLeft.setOnClickListener(listener);
        tvRight.setOnClickListener(listener);
    }
}

在dialog的布局文件中,寬度最好用match_parent和weight=1,高度可以寫固定值。然后在window里設置具體寬度,高度不設置。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容