簡體   English   中英

嘗試更改自定義對話框背景顏色

[英]Trying to change custom dialog Background color

好的,所以我正在嘗試將對話框的背景從白色更改為深藍色。 但是,當我長按其中一個網格元素時,對話框如下所示:

它看起來如何

我試圖讓它看起來像這樣(這是一個photoshop):

我希望它看起來如何的 PhotoShop

這是我用於編輯對話框的 XML 代碼片段

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="16dp"
android:background="@color/customBG">

自定義對話框的 Java 代碼

@Override
public Dialog onCreateDialog(Bundle savedInstanceState)
{
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

    LayoutInflater inflater = getActivity().getLayoutInflater();
    View view = inflater.inflate(R.layout.edit_game_dialog,null);

    editTitle = view.findViewById(R.id.editTitle);
    editTitle.setText(currentTitle);
    imageView = view.findViewById(R.id.item_image_dialog);
    imageView.setImageResource(currentImage);
    changeImageBt = view.findViewById(R.id.change_image);

    changeImageBt.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {

        }
    });

    builder.setView(view).setTitle("Edit game")
            .setPositiveButton("Apply Changes", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {
                    String title = editTitle.getText().toString();
                    int image = R.drawable.blank; //PLACE HOLDER CODE
                    editGameDialogListener.applyChanges(pos,title,image);
                }
            })
            .setNegativeButton("Cancel", new DialogInterface.OnClickListener()
            {
                @Override
                public void onClick(DialogInterface dialogInterface, int i)
                {

                }
            });

    return builder.create();
}

我認為你應該使用 Dialog 而不是 AlertDialog。 警報對話框有自己的標題和按鈕。

使用對話框,您將受益於定義標題和按鈕。

根據您的設計需要創建一個布局並在對話框中進行設置。

class ABC(context: Context) : Dialog(context) {

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    setContentView(R.layout.your_custom_layout)
}
}

創建對話框時,可以將主題作為第二個參數傳遞

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(), R.style.MyDialogTheme);

並設置自定義主題以覆蓋您需要的任何內容。 對於背景顏色,這樣的東西應該可以工作:

<style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="android:background">@color/customBG</item>
</style>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM