2014-04-08 85 views
0

設置寬度和高度尺寸相同不公平的結果通常我的GUI看起來像下面接收在安卓

enter image description here

我試圖實施寬度和高度獲取按鈕的大小相同。但結果是不公平的(見下圖)

enter image description here

代碼片段,我試圖

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

    spinner = (Spinner)findViewById(R.id.spinner1); 
    spinner.setAdapter(new MyAdapter(this, R.layout.row, strings)); 

    Button btn = (Button)findViewById(R.id.getbtn); 
    int x = btn.getLayoutParams().height; 
    btn.getLayoutParams().width = x; 
} 

XML

<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:orientation="vertical" 
android:gravity="center"> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center_vertical" 
    android:orientation="horizontal"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Testing" 
     /> 

    <Spinner 
     android:id="@+id/spinner1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:prompt="@string/prompt"/> 

    <Button 
     android:id="@+id/getbtn" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:text="Get" 
     /> 

</LinearLayout> 

</LinearLayout> 

如何解決這個問題?

在此先感謝。

+0

發表您的佈局XML。 –

+0

@HamidShatu我更新了xml – Riskhan

+0

你究竟想要做什麼? –

回答

0

您正在授予fill_parentandroid:layout_height屬性到Button XML。所以,當你編程設置height的值爲的Button那麼Button取這麼大的width來填充父寬度。

現在,Button

android:layout_height="fill_parent" 

以下屬性更改爲

android:layout_height="wrap_content" 
+0

感謝哈米德沙圖 – Riskhan

0

您可以創建自定義按鈕,如下圖覆蓋onMeasure()

public class SquareHeightButton extends Button { 
    ... 
    ... 
    @Override 
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     super.onMeasure(heightMeasureSpec, heightMeasureSpec); 
    } 
} 
+0

我只需要一個簡單的實現。所以我和哈米德沙圖一起去。不管怎樣,謝謝 – Riskhan