RT
我写的app的功能是实现一个button的拖拽,并能记录下button的坐标,同时,在下一次app被打开时,button需要显示在上一次被拖到的位置。
拖的功能我已经实现了,并将最后一次的坐标用SharedPreferences来暂时存储,里面主要记录了button距离parent容器的left/top等信息。
但是,在app开始时定位button时出现了问题,button的位置总是死死地处于父容器的左上角,请各位大大帮我看下问题在哪究竟,以下这段代码是写在onCreate()方法中的,程序如下:
------------------------------------------
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
...
// 初始化button的位置
SharedPreferences sharedata = getSharedPreferences("data", 0);
int left = sharedata.getInt("left", 0);
int top = sharedata.getInt("top", 0);
Button button = (Button) findViewById(R.id.buttonmove);
button.layout(left, top, left + button.getWidth(), top + button.getHeight());
button.invalidate();
------------------------------------------
button是已经在main.xml里定义好了的,放在一个FrameLayout中。
小弟菜鸟一枚,请大虾们不吝赐教
非常感谢...
------解决方案--------------------
FrameLayout布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡。