如何删除AlertDialog中的分隔符

问题描述 投票:1回答:2

我正在使用android.support.v7.app.AlertDialog.However,我无法删除divider.Can有人告诉我如何删除它?谢谢。

enter image description here

这是我的风格:

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="alertDialogTheme">@style/AppTheme.Dialog.Alert</item>
</style>

<style name="AppTheme.Dialog.Alert" parent="Theme.AppCompat.Light.Dialog.Alert">
    <item name="colorAccent">@color/colorAccent</item>
</style>

这是我的代码:

AlertDialog.Builder builder = new AlertDialog.Builder(mSettingsView.getBaseActivity());
builder.setTitle("Ringtone");
builder.setSingleChoiceItems(list, -1, listener1);
builder.setPositiveButton("OK", listener2);
builder.setNegativeButton("Cancel", listener3);
builder.show();
android android-view android-theme android-dialog
2个回答
1
投票

AlertDialog分隔符在棒棒糖前和棒棒糖设备中是不同的。我发现,在前棒棒糖(预材料设计)设备中,分隔色为灰色。所以它是可见的。但对于材料设计(棒棒糖)设备,分隔器颜色是透明的,因此它看起来不可见/存在。

要在所有设备上显示分隔线,请明确地将颜色设置为灰色或任何其他颜色。

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());

AlertDialog alertDialog = builder.create();

ListView listView = alertDialog.getListView();

listView.setDivider(new ColorDrawable(Color.GRAY));

listView.setDividerHeight(1);

alertDialog.show();

0
投票

你在android.support.v4.app.DialogFragment中使用AlertDialog吗?我总是这样使用它,我从来没有在你的屏幕上得到分隔符:

import android.support.v4.app.DialogFragment;
import android.support.v7.app.AlertDialog;

public class MyDialogFragment extends DialogFragment {

    public static MyDialogFragment newInstance(){
        return new MyDialogFragment;
    }

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        // Get the layout inflater
        LayoutInflater inflater = getActivity().getLayoutInflater();
        // Inflate my custom layout
        View layout = inflater.inflate(R.layout.my_custom_layout, null);
        // Initialize my layout components
        ...
        // Build dialog
        builder.setTitle("TITLE")
            .setView(layout)
            .setPositiveButton("OK", listener)
            .setNegativeButton("Cancel", listener);
        return builder.create();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.