查看定位
问题描述:
我遇到与视图定位一个奇怪的问题..查看定位
的代码,我大致像这样:
FrameLayout frame = callback.getFrame();
CustomView v = new CustomView(getActivity());
frame.addView(v);
v.setX(someX);
v.setY(someY);
//go on and do other stuff..
而回调是一个实现在MainActivity接口在哪里 我已经把方法getFrame(),它返回在主布局文件中声明的FrameLayout。
我也试着用不同的方法,因为这里所说的Set the absolute position of a view
但尽管如此,stangely足够的观点并表示在适当的位置获取模拟器,但在实际设备上没有, 我意思是没有显示,或者显示在FrameLayout的边缘。
我已经与我的Nexus 5手机(LG,API 23) 也具有相同的结果测试它在三星7J(API 25) ,正如我提到的,当我测试它与模拟器 相同的API级别,事情按预期工作。 我想出的唯一“解决方案”就是动画(),它确实把它放在我想要的地方,但它感觉不对。
有没有人遇到过这个?我该怎么办?
答
以及一些试验和错误运行后,我来到了一个解决方案, 看来,我需要的LayoutParams添加到CustomView
v.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.NO_GRAVITY));
其中Gravity.NO_GRAVITY是,所做的事情不同之处,现在将视图添加到正确的位置,使用简单的setX和setY方法..