我正在尝试以编程方式改变 webview(用于显示 html)的高度,使其看起来像是动画/扩展的。我的代码可以工作,但它很滞后。有时它运行平稳,有时运行缓慢,通常速度在整个运动过程中发生变化。我的代码如下。有没有人有什么好的方法来解决这个问题?
class ViewDropDownASynch extends AsyncTask<String,Void,String>{
WebView wv;
int height = 0;
LinearLayout.LayoutParams params;
int stop;
int step;
public ViewDropDownASynch(WebView v, int a, int o, int e){
wv = v;
params = new LinearLayout.LayoutParams(wv.getLayoutParams());
height = a;
stop = o;
step = e;
textAnimateExecute = true;
}
public String doInBackground(String... para){
for(int i = height; i != stop+step; i+=step){
params.height = i;
SystemClock.sleep(4);
this.publishProgress();
}
return "";
}
protected void onPostExecute(String result){
textAnimateExecute = false;
}
protected void onProgressUpdate(Void...values){
wv.setLayoutParams(params);
}
最佳答案
进行布局的成本非常高,您将无法避免延迟。要执行这种动画,您应该为 View 快照设置动画。
关于android - 以编程方式更改布局高度,如何避免滞后?异步任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5112933/