如何在吐司时启用点击是可见的

时间:2014-05-25 03:59:38

标签: android android-toast

每次用户在片段之间导航时,我的应用程序必须在每个屏幕的底部显示几个图像几秒钟。我已将其实现为自定义吐司,并且我会在每次导航时激活它。它看起来不错,但是当Toast处于活动状态时,用户无法点击任何内容。一旦吐司消失,他们就可以点击,一切正常。 当吐司可见时,有没有办法在吐司下面的视图上启用用户交互?

更新

这是显示我的吐司的代码:

    LayoutInflater inflater = mainActivity.getLayoutInflater();
    View layout = inflater.inflate(R.layout.custom_toast, null, false);

    Toast toast = new Toast(mainActivity.getApplicationContext());
    toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(layout);
    toast.show();

这是吐司的布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="30dp"
    android:gravity="bottom"
    android:layout_gravity="bottom"
    android:layout_alignParentBottom="true">

<ImageView
    android:id="@+id/imageViewStatsLogo"
    android:layout_width="80dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentBottom="true"
    android:layout_height="30dp"
    android:scaleType="centerInside"
    android:src="@drawable/stats_logo" />

<ImageView
    android:id="@+id/imageViewAPLogo"
    android:layout_width="35dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentBottom="true"
    android:layout_height="30dp"
    android:scaleType="centerInside"
    android:src="@drawable/ap_logo" />

</RelativeLayout>

我刚用非定制吐司测试过,我可以很好地与所有东西互动。它一定是我的定制吐司的东西。我认为我对相对布局的配置会导致它只占据屏幕的底部。好像吐司正在填满整个画面。

2 个答案:

答案 0 :(得分:0)

我测试了它。 我确信在吐司下面的视图上的用户交互可以正确完成。 您所要做的就是半透明地制作吐司,以便用户可以看到视图。

答案 1 :(得分:0)

经过多次反复试验,我发现必须在相对布局周围使用线性布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:orientation="horizontal" >

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="70dp"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:src="@drawable/stats_logo" />

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:layout_alignParentRight="true"
        android:src="@drawable/ap_logo" />
</RelativeLayout>

</LinearLayout>

并且需要在吐司上设置重力以使其位于底部:

    LayoutInflater inflater = mainActivity.getLayoutInflater();
    View layout = inflater.inflate(R.layout.stats_ap_toast, null, false);

    Toast toast = new Toast(mainActivity.getApplicationContext());
    toast.setGravity(Gravity.BOTTOM, 0, 0);
    toast.setDuration(Toast.LENGTH_SHORT);
    toast.setView(layout);
    toast.show();

现在,用户与吐司下方视图的互动正在发挥作用。