我需要知道一种通用的方法来区分来自启动器的活动调用和来自我的应用程序内的另一个活动的调用,或活动堆栈上的BACK
任何人?现在这让我烦恼了一段时间,我需要把它休息一下......
在此先感谢JQCorreia
我现在不得不放弃这个纯粹的学术问题,但我非常希望能在近期看到解决方案.
由于Android处理多点触控的方式,你可以(我认为)只在一个视图中捕获事件.我已经尝试了一个hack来解决这个容器布局,拦截事件通过查看coords并更改动作本身来查看它所属的View,这样组件看起来就是单个触摸事件.我撰写此类事件然后将其路由到视图.
有没有人有更好的想法这样做?
如果有人想要我上面描述的代码只是问我发布它!
玩得开心,祝你好运:D JQCorreia
public class Container extends LinearLayout
{
LinkedHashMap<Integer,View> pointers = new LinkedHashMap<Integer,View>();
ArrayList<View> views = new ArrayList<View>();
public Container(Context context) {
super(context);
initialize(context);
}
public Container(Context context, AttributeSet attrs) {
super(context, attrs);
initialize(context);
}
private void initialize(Context context)
{
}
@Override
public void onLayout(boolean changed, int l, int t, int r, int b)
{
super.onLayout(changed, l, t, r, b);
views = LayoutUtil.flattenLayout(this,false);
for(View foo : views)
{
Rect rect = new Rect();
foo.getGlobalVisibleRect(rect);
}
} …Run Code Online (Sandbox Code Playgroud)