2012-09-23 82 views
1

我想製作一個寬度與heigth相同的按鈕。
我嘗試bt.setWidth(bt.getHeight())但它不起作用。
如果我對寬度進行了硬編碼(bt.setWidth(90)),但它不起作用,所以我可以對其進行硬編碼。方形按鈕android

這是一些代碼。當我點擊一個按鈕時,會打開一個對話框,並且此對話框必須包含方形按鈕。

public class MyClass extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.myLayout); 
    } 

    public void doClick(View view) { 
     final Dialog dialog = new Dialog(view.getContext()); 
     dialog.setContentView(R.layout.dialogLayout); 
     dialog.setTitle("Title"); 

     Button bt = (Button) dialog.findViewById(R.id.myButton); 
     bt.setWidth(bt.getHeight()); 
     bt.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       ... 
      } 
     }); 

     dialog.show(); 
    } 
} 

我該怎麼辦呢?

+1

請顯示代碼。你在onCreate()中做這個嗎? – Simon

+0

我只是編輯我的問題。 – Snote

+0

這是一個複製/粘貼?這行是如何看起來在你的代碼------ bt.setWidth(bt.getHeight()我會期待一個結束括號和在該行的末尾分號。 – Simon

回答

2

直接的答案是,直到顯示對話框,它沒有測量它的佈局,按鈕高度將爲零。您可以擴展Dialog類並覆蓋onMeasure()方法或將全局佈局偵聽器附加到佈局,並在onLayoutComplete()中設置按鈕大小。

但是,您的方法可能是錯誤的。爲什麼不能在對話框的佈局XML中執行此操作?