被强制转换为wrap_content layout_width的android Toast消息?

时间:2017-01-31 22:31:06

标签: android toast android-toast

我正在创建一个与android.widget.Toast.setView()一起使用的自定义视图,但无论我如何调整视图大小,一切似乎都是使用" wrap_content"作为布局宽度设置。

例如,我是否将视图的根布局(在我的情况下为LinearLayout)宽度设置为' match_parent'或者指定一个静态大小,例如" 500dp"我在运行时得到了相同的结果...... toast简单地包装了内容。

我的布局XML是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/toast_container"
    android:orientation="horizontal"
    android:layout_width="500dp"
    android:layout_height="wrap_content"
    android:padding="16dp"
    android:background="@drawable/toast_bg">
    <ImageView
        android:id="@+id/toastIcon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginEnd="16dp"
        android:src="@drawable/toast_icon" />
    <TextView
        android:id="@+id/toastMsg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="sample toast message"/>
</LinearLayout>

我怀疑Android(我在API 19 Kit-Kat平台上运行)正在迫使吐司视图成为&#39; wrap_content。&#39;是这样吗?

我确定有人会建议我查看AOSP中的源代码。如果我有方便的代码,我会这样做。

1 个答案:

答案 0 :(得分:0)

我在我的应用程序中这样做,它适用于定义的宽度。

^(0[1-9]|1[012])[- \/.](0[1-9]|[12][0-9]|3[01])[- \/.](19|20)\d\d\s{1}(?:(?:([01]?\d|2[0-3]):)?([0-5]?\d):)?([0-5]?\d)\s{1}([aApP][mM]){1}$

我设置了RelativeLayout的宽度,它对我有用。试试这个。