問題:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original

問題:android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a
我的場景是

LinearLayout.LayoutParams params11 
= new LinearLayout.LayoutParams(264, LinearLayout.LayoutParams.WRAP_CONTENT);
bt21.setLayoutParams(params11);

更新設置UI
問題的意思是更新UI阻塞了主線程
解決方法: 利用runOnUiThread,下面是我一個例子,關於runOnUiThread的用法,自行查詢

  runOnUiThread(new Runnable() {
     @Override
     public void run() {
        //更改UI;
         new Handler().postDelayed(new Runnable() {
          @Override
            public void run() {
            //TODO  todo somthing here
            System.out.println("寬度" + bt1.getWidth());
            LinearLayout.LayoutParams params1 
           = new LinearLayout.LayoutParams(bt1.getWidth(),                                 
           LinearLayout.LayoutParams.WRAP_CONTENT);
           bt2.setLayoutParams(params1);
                               }
},1 * 1000);  //延遲10秒執行
            }
        });
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章