自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Android獲取LinearLayout寬高

企業(yè)動(dòng)態(tài)
有的時(shí)候,我們需要想獲取LinearLayout寬高,怎么辦?本文告訴大家,一起學(xué)習(xí)一下吧!

[[189862]]

有的時(shí)候,我們需要想獲取LinearLayout寬高

1.獲取LinearLayout寬高

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

你會(huì)發(fā)現(xiàn)打印出來是0

那是因?yàn)樵趏nCreate方法的時(shí)候LinearLayout還并沒有繪制完成,所以獲取的高度均為0,

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

如果我們用獲取LinearLayout的寬高

可以通過定時(shí)器不斷的監(jiān)聽LinearLayout的寬高,等繪制完成后,關(guān)閉定時(shí)器即可。

  1. final Handler handler= new Handler(){ 
  2.          @Override 
  3.          public void handleMessage(Message msg) { 
  4.             if(msg.what == 1) { 
  5.                 if(ll.getWidth()!=0) { 
  6.               Log.i("w", ll.getWidth()+"L"+ll.getHeight()); 
  7.                      timer.cancel(); 
  8.  
  9.                 } 
  10.             }   
  11.          } 
  12.      }; 
  13.      timer = new Timer(); 
  14.      TimerTask task = new TimerTask(){ 
  15.          public void run() {   
  16.              Message message = new Message();  
  17.              message.what = 1;  
  18.              myHandler.sendMessage(message);   
  19.              }   
  20.          };    
  21.         timer.schedule(task,10,1000);   
  22.  } 

類似,如果想在Activity啟動(dòng)后立即彈出PopupWindow,我們知道,

在Activity的onCreate()方法中直接寫彈出PopupWindow方法會(huì)報(bào)錯(cuò),因?yàn)閍ctivity沒有完全啟動(dòng)是不能彈出PopupWindow。

我們可以嘗試用兩種方法實(shí)現(xiàn):

2.用onWindowFocusChanged方法

  1. @Override 
  2. public void onWindowFocusChanged(boolean hasFocus) { 
  3.  super.onWindowFocusChanged(hasFocus); 
  4.  showPopupWindow(); 

3.用Handler和Runnable,延時(shí)

  1. @Override 
  2. protected void onCreate(Bundle savedInstanceState) { 
  3.  super.onCreate(savedInstanceState); 
  4.  setContentView(R.layout.main); 
  5.  mHandler.postDelayed(mRunnable, 1000); 
  6. private Runnable mRunnable = new Runnable() { 
  7.  public void run() { 
  8.   showPopupWindow(); 
  9.  } 
  10. }; 

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

【本文為51CTO專欄作者“洪生鵬”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)聯(lián)系原作者】

戳這里,看該作者更多好文

責(zé)任編輯:武曉燕 來源: 51CTO專欄
相關(guān)推薦

2024-06-19 08:32:13

2021-09-26 08:35:17

Android控件寬高

2024-08-27 11:12:31

2011-12-27 10:18:31

Web

2016-12-07 10:32:14

移動(dòng)應(yīng)用開發(fā)底部導(dǎo)航android

2012-11-07 13:53:07

電源高功率低密度

2014-04-08 16:02:28

寬字節(jié)注入數(shù)據(jù)安全MYSQL

2013-03-28 13:27:14

Android獲取屏幕

2011-05-07 11:03:01

輕博客寬島

2022-06-22 09:06:54

CSS垂直居中代碼

2011-06-02 09:51:05

Android 手機(jī)

2015-02-06 18:29:09

仿滴滴打車android

2015-10-12 11:19:35

墨跡天氣引導(dǎo)界面android

2014-08-21 10:39:54

Android開源庫獲取途徑

2012-05-07 13:41:18

JavaScript

2010-03-02 10:36:05

Android窗體

2016-06-06 00:51:55

北京移動(dòng)寬帶中國銳捷

2021-12-02 08:41:30

數(shù)倉建模設(shè)計(jì)

2011-04-21 15:38:05

Dalvik高斯林Android

2011-09-01 10:27:26

Android圖片本地緩存Android遠(yuǎn)程圖片
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)