每次用户在片段之间导航时,我的应用程序必须在每个屏幕的底部显示几个图像几秒钟。我已将其实现为自定义吐司,并且我会在每次导航时激活它。它看起来不错,但是当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>
我刚用非定制吐司测试过,我可以很好地与所有东西互动。它一定是我的定制吐司的东西。我认为我对相对布局的配置会导致它只占据屏幕的底部。好像吐司正在填满整个画面。
答案 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();
现在,用户与吐司下方视图的互动正在发挥作用。