Android getheight() 得到返回值為0
阿新 • • 發佈:2019-02-18
對某一layout 應用getheight() 得到的一直是0. 查詢後發現,這個方法直接用在 onCreat 函式裡得到的就是0. 所以getheight 或者用到onCreat 之後的方法中,或者模擬button click 得到也可以。
我採用的是比較麻煩的方法,oncreate 新建一個執行緒,執行緒執行完後,已經跳出onCreate 這是去呼叫getheight 方法
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); frameLayout=(FrameLayout)findViewById(R.id.frame); /* 開啟一個新執行緒,在新執行緒裡執行耗時的方法 */ new Thread(new Runnable() { @Override public void run() { try { spandTimeMethod(); // handler.sendEmptyMessage(0);// 執行耗時的方法之後傳送消給handler } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); }// 耗時的方法 handler.sendEmptyMessage(0);// 執行耗時的方法之後傳送消給handler } }).start();
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {// handler接收到訊息後就會執行此方法
initViews();
}
};
private void initViews() {
//呼叫getheight 方法,得到控制元件高度
MyApp.parentheight=frameLayout.getHeight();
}