AlertDialog自定义标题有黑色边框

5

我有一个AlertDialog,其中包含自定义对话框视图。自定义标题视图的想法似乎很简单,但是自定义标题周围有黑色边框,我似乎无法去掉。顶部、左侧和右侧有一个像素的边框,而底部有约5个像素的边框。

在Java中创建对话框:

View titleView = inflater.inflate(R.layout.part_list_item, parent, false);
((TextView) titleView.findViewById(R.id.partName)).setText(titleText);
AlertDialog productDialog = new AlertDialog.Builder(getContext())
    .setCustomTitle(titleView)
    .setAdapter(adapter, doNothingClickListener)
    .create();

自定义标题视图布局,part_list_item.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="#ff0000"
    android:id="@+id/partName"
    android:layout_marginLeft="6dip"
    android:textAppearance="?android:attr/textAppearanceLargeInverse"
    />

我所看到的: 屏幕截图已损坏 我想看到的是: 修复后的屏幕截图 您有什么建议吗?

相对布局中的填充和TextView中的阴影是否必要? - ngesh
1
@sandy 这是一个好问题。我已经移除了那些部分,结果相同,只是底部的黑色边框现在更大了。 - Jacob Marble
尝试在填充XML时将attachToRoot设置为true。 - dreamtale
@Jacob 的填充方法对我很有帮助。谢谢 :) - Sufian
2个回答

3

试试这个:

LayoutInflater inflater = (LayoutInflater)yourClass.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View titleView = inflater.inflate(R.layout.custom_dialog, null);

((TextView) titleView.findViewById(R.id.partName)).setText("Your Title");
alert1.setCustomTitle(titleView);

0

当你在警告框中有标题时,这是 Android 创建的结果。根据屏幕截图所示,警告框的“主体”也是自定义视图,而不是警告消息属性。

因此,实现你想要的结果最简单的方法是在警告框的自定义视图中添加标题布局。

例如:

View titleView = inflater.inflate(R.layout.part_list_item, parent, false);

View bodyView = ....
bodyView.addview(titleView);
((TextView) itleView.findViewById(R.id.partName)).setText(titleText); 

AlertDialog productDialog = new AlertDialog.Builder(getContext());
productDialog.setView(bodyView);
...

productDialog.create();

bodyView.addview(titleView); 将标题布局添加到警报框体中。

productDialog.setView(bodyView);则将自定义视图设置为警报框体的主体。


1
你的方法相对于放弃使用“AlertDialog”而采用自定义“Dialog”有什么优势?对我来说,使用“AlertDialog”的重点在于已经有了标题和正文,我只需要简单地填写即可。 - Jacob Marble
我只是建议您可以将titleView添加到“body”视图上。这将解决边框问题。因为默认情况下边框设置在标题和消息之间! - Thanos Karpouzis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接