2013-04-12 84 views
0

我想完成的操作我確定可以通過代碼完成,但我需要通過聲明式XML來完成操作(如果可能)。我想設置一個按鈕爲另一個按鈕的高度的一半。將Android按鈕設置爲另一個按鈕的高度的一半

我可以參考其他組件的ViewGroup文檔中找到,而且埃文斯說,這多少:

這也可能是一個資源的引用(形式爲「@ [包:]類型:名稱「)或包含此類型值的主題屬性(形式爲」?[包裝:] [類型:]名稱「)。

但我不知道如何將其轉換爲我所需要的。

我的活動XML的基本佈局如下:

<的RelativeLayout ...>

<LinearLayout ... > 

    <fragment ... /> 

    <LinearLayout ... > 

     <ImageButton 
      ... 
      android:id="@+id/userButton" 
      android:layout_height=" *tag_button:layout_height/2? " 
      ... /> 

     <ImageButton 
      ... 
      android:id="@+id/searchButton" 
      android:layout_height=" *tag_button:layout_height/2? " 
      ... /> 
    </LinearLayout> 
</LinearLayout> 

<Button 
    android:id="@+id/tag_button" 
    android:layout_height="wrap_content" 
    ... /> 

</RelativeLayout的>

所有我真正想要的是同時設置userButton:layout_height和搜索按鈕:layout_height等於tag_button的一半:提前多少layout_height

謝謝!

回答

1

如果您打算把兩個按鈕中的線性佈局,可以使用佈局重

<LinearLayout ... > 

    <ImageButton 
     ... 
     android:id="@+id/userButton" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     ... /> 

    <ImageButton 
     ... 
     android:id="@+id/searchButton" 
     android:layout_height="0dip" 
     android:layout_weight="2" 
     ... /> 
</LinearLayout> 

我不知道是否有直接引用另一個元素的寬度以XML的方式。但是你可以讓佈局爲你做好工作。

+0

爲了澄清,我需要兩個元素都位於圍繞 Syynth

+0

+0

那麼,答案很可能是它不可行,但我會堅持這個結論,直到我確定。另外,感謝您指出View/ViewGroup的區別。 – Syynth

0

可以使用重量普林西這樣的:

<LinearLayout android:layout_height="match_parent" 
    android:layout_width="match_parent" 
    android:orientation="vertical" > 

<Button android:id="@+id/btnUser" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="1" > 

<Button android:id="@+id/btnSearch" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="1" > 

<Button android:id="@+id/btnTag" 
    android:layout_width="wrap_content" 
    android:layout_height="0dp" 
    android:layout_weight="2" > 

</LinearLayout> 

這樣一來,你的按鈕(搜索和用戶),將有一半的按鈕標籤的高度。

NB:重量的概念只適用於LinearLayout,所以如果你有一個RelativeLayout,嘗試添加一個子佈局到它LinearLayout類型,然後,你可以使用android:layout_weight

+0

因此,RelativeLayout中的兩個項目是頂層的LinearLayout,它填充整個屏幕,然後是tag_button,它的底部浮動兩個菜單按鈕基本上位於任一側,部分位於底部,因爲tag_button是圓形的。 – Syynth

+0

在我的代碼示例中,您將從頂部開始在屏幕高度的第一個1/4處具有第一個按鈕,第二個按鈕將佔用屏幕高度的第二個1.4,並且標記按鈕將採用1/2屏幕的高度。 – Houcine

相關問題