You*_*che 6 layout android refresh
我想改变布局的位置,75ms后将其返回到第一个位置进行移动,这是我的代码:
for(int i = 0; i < l1.getChildCount(); i++) {
linear = (LinearLayout) findViewById(l1.getChildAt(i).getId());
LayoutParams params = new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);
params.bottomMargin = 10;
linear.setLayoutParams(params);
SystemClock.sleep(75);
}
Run Code Online (Sandbox Code Playgroud)
问题是应用程序停止750毫秒,并没有做任何事情.我试过 invalidate(),refreshDrawableState(),requestLayout(), postInvalidate(),并尝试调用onResume(),onRestart(),onPause().
Ped*_*aço 17
也许你需要:
linear.invalidate();
linear.requestLayout();
Run Code Online (Sandbox Code Playgroud)
在进行布局更改后.
编辑:
在不同的线程上运行代码:
new Thread() {
@Override
public void run() {
<your code here>
}
}.start();
Run Code Online (Sandbox Code Playgroud)
每当您需要从该线程更新UI时,请使用:
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
<code to change UI>
}
});
Run Code Online (Sandbox Code Playgroud)