我有这个问题已经有一个多星期了,经过这里和谷歌的几十个主题后,我仍然没有答案。 问题是我正在动态地将数据加载到长ListView,因此初始化不会持续很长时间。更改手机方向后,ListView正在调整大小并且内部有空元素(没关系)。所以我认为OnConfigurationChanged事件会处理这个问题。不幸的是,在小部件调整大小之前它被解雇了,所以我仍然有空列表。这是我的问题:无论如何得到一个事件(或监听器),它将在widged调整大小并被绘制之后出现?
我已经在清单中了:
android:configChanges="keyboardHidden|orientation|screenSize
并且没有办法将其“关闭”,因为加载需要几秒钟而且我不希望在翻转手机方向时有几秒钟的延迟。
P.S。对不起任何语言错误;)
答案 0 :(得分:0)
是肯定的。您可以使用将侦听的setOnGlobalLayoutListener(),并在布局完成后使用回调
同样在屏幕旋转时,应该销毁活动,重新创建,因此您的加载应该重新启动。你在做一些奇怪的事吗?
我在我的一个片段中执行此操作:
root = inflater.inflate(R.layout.fragment_booking_accepted, null);
root.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Dbg.e(TAG, "- On Layout Completed ! ");
// If you need this to be called again, then run again addOnGlobalLayoutListener.
// root.getViewTreeObserver().removeGlobalOnLayoutListener(this);
isLayoutCompleted = true;
// YOU write here all the coed you might need. }}}} close brackets
编辑:
它改变了你的观点吗?问我,如果我知道,我会尽力回答。