国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android基礎之獲取LinearLayout的寬高

2019-12-12 04:29:05
字體:
來源:轉載
供稿:網友

前言

看到題目獲取LinearLayout寬高,或許大家想到的解決方法如下:

public void onCreate(Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  LinearLayout ll = (LinearLayout) findViewById(R.id.layInfo); Log.i("w", ll.getWidth()+"L"+ll.getHeight());}

你會發現打印出來是0

那是因為在onCreate方法的時候LinearLayout還并沒有繪制完成,所以獲取的高度均為0,

或者試著把這段代碼放到onResume()方法中去,依然是0。

實現方法

如果我們用獲取LinearLayout的寬高

可以通過定時器不斷的監聽LinearLayout的寬高,等繪制完成后,關閉定時器即可。

final Handler handler= new Handler(){   @Override   public void handleMessage(Message msg) {   if(msg.what == 1) {    if(ll.getWidth()!=0) {    Log.i("w", ll.getWidth()+"L"+ll.getHeight());      timer.cancel();    }   }    }  };  timer = new Timer();  TimerTask task = new TimerTask(){   public void run() {     Message message = new Message();     message.what = 1;     myHandler.sendMessage(message);     }    };   timer.schedule(task,10,1000);  }

類似,如果想在Activity啟動后立即彈出PopupWindow,我們知道在Activity的onCreate()方法中直接寫彈出PopupWindow方法會報錯,因為activity沒有完全啟動是不能彈出PopupWindow

我們可以嘗試用兩種方法實現:

1、用onWindowFocusChanged方法

@Overridepublic void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); showPopupWindow();}

2、用HandlerRunnable,延時

@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mHandler.postDelayed(mRunnable, 1000);}private Runnable mRunnable = new Runnable() { public void run() { showPopupWindow(); }};

這樣獲取LinearLayout寬高問題就解決了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對各位Android開發者們能有所幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 桃园县| 邹平县| 错那县| 广饶县| 岳池县| 绥滨县| 营山县| 鸡东县| 鄄城县| 封开县| 陵水| 集安市| 武安市| 自治县| 富锦市| 甘泉县| 德钦县| 贵南县| 通江县| 茶陵县| 平远县| 西峡县| 惠来县| 平定县| 荃湾区| 三明市| 汕头市| 清水河县| 常州市| 启东市| 绥芬河市| 鲁山县| 安图县| 托克托县| 军事| 旺苍县| 当雄县| 尉犁县| 安溪县| 莱西市| 宜丰县|