android - 以编程方式更改布局高度,如何避免滞后?异步任务

标签 android animation layout android-asynctask lag

我正在尝试以编程方式改变 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/

相关文章:

Android Studio 模拟器错误 "The emulator process for AVD was killed"

android - 如何加密 Assets

android - 寻找具有可点击项目的 Android 图表库

android - fcm 刷新 token 何时创建

animation - 从 Haskell 输出 ascii 动画?

css - 检查 CSS 中的文本长度

javascript - 关闭选项卡 JavaScript 时延迟

Java Swing布局问题

css - 导航栏中心位置

algorithm - 图自动布局算法