不显示警告对话框的自定义视图中的TextView

时间:2014-12-25 21:51:48

标签: android

我设置了alertdialog构建器的自定义标题,其中包含两个webview视图,用于动画gif和它们之间的textview。 Web视图显示在警报对话框的标题中,但缺少textview。 这里是视图XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="75dp"
android:weightSum="1"
android:background="@android:color/background_dark">



    <WebView
        android:layout_width="wrap_content"
        android:layout_height="75dp"
        android:id="@+id/Title_webView1"
        android:layout_weight="0.15"
        android:layout_gravity="left" />

    <TextView

        android:id="@+id/titletextView"
        android:layout_width="match_parent"
        android:layout_height="75dp"

        android:textAppearance="?android:attr/textAppearanceLarge"

        android:layout_gravity="center"
        android:layout_weight="0.7"
        android:textAlignment="center"
        android:textIsSelectable="false"
        android:visibility="visible"
        android:gravity="center_vertical|center_horizontal"
        android:inputType="none"
        android:textColor="#d0d2d116"
        android:text="test123"
        android:singleLine="true"
        android:textSize="32dp" />

    <WebView
        android:layout_width="wrap_content"
        android:layout_height="75dp"
        android:id="@+id/Title_webView2"
        android:layout_weight="0.15"
        android:layout_gravity="right" />

这里的视图功能:

private View setCustomDialogTitle(String Title)
{
    LayoutInflater inflater = getLayoutInflater();
    View view = inflater.inflate(R.layout.embark_title, null);

    TextView TitleText = (TextView) view.findViewById(R.id.titletextView);
    TitleText.setText(Title);

    WebView flashingLight1 = (WebView) view.findViewById(R.id.Title_webView1);
    flashingLight1.loadUrl("file:///android_asset/flashlight751.gif");
    WebView flashingLight2 = (WebView) view.findViewById(R.id.Title_webView2);
    flashingLight2.loadUrl("file:///android_asset/flashlight752.gif");

    return  view;
}

和函数调用:

AlertDialog.Builder alrtBuilder= new AlertDialog.Builder(this);
            alrtBuilder.setCustomTitle(setCustomDialogTitle("Test123"));

1 个答案:

答案 0 :(得分:0)

问题在于为组件设置layout_width并再次使用权重设置它们。

因此xml中的一个小变化可以帮助你。渲染中的混乱将是原因。

将所有layout_width属性设置为“0dp”

android:layout_width="0dp"

对于这三个组件,它会为您带来您想要的精确外观。对于一些参考阅读this文章,它真的有助于你理解。

NB:为您的代码进行了测试和工作