-2

每次用户在片段之间导航时,我的应用程序必须在每个屏幕底部显示几秒钟的图像。我已将其实现为自定义 toast,并在每次导航时激活它。它看起来不错,但是当 toast 处于活动状态时,用户无法单击任何内容。吐司一走,他们就可以点击,一切正常。当 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>

我刚刚用非自定义吐司进行了测试,我可以很好地与所有东西交互。一定是我的定制吐司。我认为我对相对布局的配置会导致它只占据屏幕的底部。就好像吐司填满了整个屏幕。

4

2 回答 2

0

我已经测试过了。我确信在 toast 下的视图上的用户交互可以正确完成。您所要做的就是使吐司半透明,以便用户可以看到视图。

于 2014-05-25T05:49:22.720 回答
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();

现在,用户与 toast 下方视图的交互正在工作。

于 2014-05-25T20:09:26.167 回答