我在视图定位时遇到了一个奇怪的问题..
我的代码大致如此:
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
但仍然,在模拟器上足够稳定,视图会在适当的位置显示,但在实际的设备上却没有, 我的意思是没有显示,或显示在FrameLayout的边缘。
我用我的nexus 5手机(LG,API 23)进行了测试 也在SAMSUNG 7J(API 25)上 具有相同的结果,正如我所提到的,当我在模拟器上测试它时 相同的API级别,事情按预期工作。 我想出的唯一“解决方案”是动画()放置它的视图 我想要的地方,但感觉不对。
有没有人遇到过这个?我该怎么办?
答案 0 :(得分:0)
v.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, Gravity.NO_GRAVITY));
其中Gravity.NO_GRAVITY是产生差异的东西,现在使用简单的setX和setY方法将视图添加到正确的位置..