在我的应用程序中,我希望当屏幕变暗时在所有内容上方添加一层,这样当用户点击屏幕时,暗淡将会消失,然后他就可以使用该应用程序。如果我在屏幕变暗并且用户点击屏幕时不这样做,他将在应用程序中激活一些内容。
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/drawer_layout"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<!-- The main content view -->
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/radio_frame"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</FrameLayout>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
</FrameLayout>
</LinearLayout>
<LinearLayout
android:id="@+id/disc"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:gravity="center"
android:visibility="gone"
android:orientation="vertical" />
<!-- The navigation drawer -->
<ListView
android:id="@+id/left_drawer"
android:layout_width="240dp"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="#ffffff"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="10dp" />
这是我的布局。当屏幕变暗时,我可以看到光盘,当用户触摸屏幕上的内容时,我将其设为View.gone。问题是光盘上的点击也激活了我的内容帧片段上的某些内容。
有没有办法让它现在发生?我希望点击只激活光盘onclickhandler而不是其他任何东西。或者还有其他方法吗?
答案 0 :(得分:0)
所以我想出了如何做到这一点。诀窍是在视图本身上有一个onclickListener。当我不得不点击时,我只是让它消失了。
private final Runnable disconnectCallback = new Runnable() {
@Override
public void run() {
runOnUiThread(new Thread(new Runnable() {
@Override
public void run() {
disconnect.setVisibility(View.VISIBLE);
}
}));
}
};
private static final Handler disconnectHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
}
};
public void resetDisconnectTimer() {
disconnectHandler.removeCallbacks(disconnectCallback);
disconnectHandler.postDelayed(disconnectCallback, 3000);
}
public void stopDisconnectTimer() {
disconnectHandler.removeCallbacks(disconnectCallback);
}
@Override
public void onUserInteraction() {
resetDisconnectTimer();
}
@Override
public void onResume() {
super.onResume();
resetDisconnectTimer();
}
在onCreate中我有这个
disconnect = findViewById(R.id.disc);
disconnect.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
disconnect.setVisibility(View.GONE);
}
});
在我之前的尝试中,我在处理程序内部“断开连接”。现在我有一个onclick听众。