5

最终编辑:好吧,完全破解,但目前我喜欢“meh”它有效。我为解决这个问题所做的只是添加android:lines="10"到 TextView 中,它显示了 2.2 和 ICS/JB 中的所有内容。完全破解,因为它根本不是抽象的,但无论如何:P..感谢所有帮助过的人!

我在使用 Gingerbread (API 10) 的自定义对话框中显示文本时遇到问题。显示的唯一文本是此处所示的第一行。在 Froyo、ICS 和 JB 中,它会显示每一行文本。我相信这是一个 XML 的东西,但我不确定。我哪里错了?

编辑:我尝试过的:

-将RelativeLayout更改为LinearLayout

-在滚动视图中添加

-把我的绳子放在一条线上

- 使用 requestLayout() 和 forceLayout()

- 将对话功能放在一个单独的类中

- 取出按钮中的边距

- 使用 \n 而不是 HTML

-警报对话框

我的 TextView 上的 -inputType 和 singleLine XML 属性

-我想还有一两个我忘记了..

这是 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    android:id="@+id/layout_root"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/dia_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="17dp"
        android:padding="5dp"/>

    <View 
        android:id="@+id/bar"
        android:layout_width="fill_parent"
        android:layout_height="1dip"
        android:background="#CCCCD0"
        android:layout_below="@+id/dia_text"/>

    <Button
        android:id="@+id/dialogbuttongotit"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/dialog_confirm"
        android:textSize="20dp"
        android:layout_marginTop="0dp"
        android:layout_marginRight="0dp"
        android:layout_below="@+id/bar"/> 
</RelativeLayout>

这是代码:

final Context context = this;
public void addListenerOnRectHelpButton() {

    img = (ImageButton) findViewById(R.id.rect_img); 
    img.setOnClickListener(new View.OnClickListener() { 
        public void onClick(View v) {

               //create a new dialog
            final Dialog dialog = new Dialog(context);
            dialog.setContentView(R.layout.custom_dialogs);
            dialog.setTitle("Rectangular Area");

            // set the custom dialog text
            TextView text = (TextView) dialog.findViewById(R.id.dia_text);
            String dialog_rect_txt = "<u>Area of a Rectangular Channel</u><br />" +
                    "Height x Width (H x W)<br />--Example:<br />" +
                    "Height: 3ft,  Width 5ft<br />" +
                    "H x W = 3ft x 5ft = 15ft<sup>2</sup><br />";
            text.setText(Html.fromHtml(dialog_rect_txt));

            Button dialogButton = (Button) dialog.findViewById(R.id.dialogbuttongotit);
            // if button is clicked, close the custom dialog
            dialogButton.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    dialog.dismiss();
                }
            });

            dialog.show();             

        }

    });

}
4

2 回答 2

0

为什么不直接使用 AlertDialog 而不是自己构建呢?

Dialog dlg = new AlertDialog.Builder(this).setTitle(
    "Rectangular Area").setMessage(dialogRectText).setPositiveButton(
     "Got It", clickListener).create();
dlg.show();
于 2012-07-25T16:42:00.797 回答
0

你试过在 TextView 上调用 requestLayout() 吗?

...
text.setText(Html.fromHtml(dialog_rect_txt));
text.requestLayout();
...
于 2012-07-25T14:30:50.457 回答