如在原来的列表上 放了一个隐藏显示的ReltionLayout 里面放了一些 选项 选择排序或过滤条件,这时在列表上面弹出显示这个ReltionLayout ,点击这个ReltionLayout 空白处 没有刚好点击上ReltionLayout里面的控件 经常会点击到下面的列表Items 里面的item 而触发其事件 如进入了详细页。
还有一种情况是:
<RelativeLayout>
<RelativeLayout android:id="@+id/Rel1" android:layout_width="match_parent"
android:layout_height="match_parent">
类别选择在Rel2下面, Rel2侧滑时看到 就像蘑菇街一样
我里面放了ExpandableListView 控件
</RelativeLayout>
<RelativeLayout android:id="@+id/Rel2" android:layout_width="match_parent"
android:layout_height="match_parent">
主页面, 触屏事件 侧滑
</RelativeLayout>
</RelativeLayout>
不清楚蘑菇街是怎么做的,他第一屏侧滑后就锁住了,那半边是不能再滚动和点击的。
而我上面的做法则出现第一习测滑后还会被一些事件影响到,就算我在另半屏Rel1中作触屏和滚动都会影响到Rel2。
我需要的是不影响,要怎么做才能达到不影响的效果。
网页中经常会做弹出一个遮照层来盖着下面的层,android 有没有类似的效果。
------最佳解决方案--------------------
用alertdialog,它自己会带遮罩
------其他解决方案--------------------
感叹下adroid。。。。。。。。
------其他解决方案--------------------
ReltionLayout的内容转到另外一个Activity中,把这个Activity设置成透明的,能不能满足你的要求呢!不知我表达的是否明确呢
------其他解决方案--------------------
我再补充一点。重写有关触屏的事件,可以指定那些控件可以接收事件去处理,这块我学的不精,具体怎么做就不是很清楚了
------其他解决方案--------------------
View view=findviewbyid(R.id.re1); //大小写自己改下...
view.setonclicklistener(null);
------其他解决方案--------------------
Re2
clickable = "true"
------其他解决方案--------------------
alertdialog 不美观 很难做到自己想要的效果,或许是我不懂得重写。
------其他解决方案--------------------
该回复于2012-12-09 16:35:31被管理员删除
------其他解决方案--------------------
呃,不明白,难道是想网页中的iframe一样?一个屏幕里面能同时显示两个Activity吗?
------其他解决方案--------------------
事件监听应该是针对相应的控件吧,听有绑定相应监听的才会执行监听器里面的程序,我觉得应该无需在监听器里面判断哪些控件,因为按道理是你触摸了哪个控件如果这个控件绑定了监听器则会执行监听器,无绑定则不执行。
最郁闷的是我发现事实并非如此,我上面放了两个ReltionLayout 一个显示主页面Rel2, 另一个显示一些类别菜单Rel1(一进入这个Activity时Rel1被Rel2遮住看不到)。Rel2上绑定了触屏事件监听,当向左滑时Rel2向左滑半屏,向右滑则恢复原样
/**
* 滑屏动画 触屏事件
* @author kong
*
*/
public class myOnTouchListener implements View.OnTouchListener
{
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN)
{
containerX1 = event.getX();
}
else if(event.getAction()==MotionEvent.ACTION_MOVE)
{
containerX2 = event.getX();
}
else if(event.getAction()==MotionEvent.ACTION_UP)
{