2016-03-15 53 views
0

我有一種方法可以創建具有寬度和高度修正大小的按鈕。要創建按鈕,我使用了layout.xaml模板。按鈕模板將被命令調用:以編程方式在gridlayout中添加按鈕,並設置寬度和高度百分比

var btn = LayoutInflater.Inflate(Resource.Layout.btn, null); 

在該方法中,按鈕獲取特殊文本和顏色。上的按鈕定製的端部的按鈕將被添加到GridLayout的以下代碼:

var pari = new RelativeLayout.LayoutParams(widthbutton, heightbutton) 
RunOnUiThread(() => gridlayout.AddView(val.Value, pari)); 

widthbutton和heightbutton僅僅是一個固定數。 我的問題是:我想根據網格佈局的大小設置按鈕的寬度和高度。那麼,如何以百分比設置按鈕的大小呢?

+0

如果您想根據屏幕大小調整它們的大小,請嘗試使用「填充」。使用「wrap_content」作爲高度和寬度。不要給出準確的數字,以免重新調整它們。 – Devraj

回答

0

如果要將按鈕與GridLayout的寬度和高度相匹配,可以使用match_parent來匹配gridLayout的高度和寬度。 因此,它會像...

var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, 
     LayoutParams.MATCH_PARENT, 0.5f); 

構造RelativeLayout的是傳球的重量,0.5F意味着分配的空間,您的實例的一半。控制這將允許您控制UI組件的寬度和高度。

然後將其添加到您的用戶界面。乾杯

EDITED

下面是你實際上在你的UI添加一個相對佈局

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT.......); 

我的問題.. 是什麼VAR彩實際持有?如果它是一個非UI組件(不是RelativeLayout類型),那麼你實際上不能將它添加到你的UI。我實際上已經給出了以前的解決方案/建議,認爲你可能會意識到這一點。 總之,要保持進一步的假設而去,也許這將是最好看的錯誤第一:) 乾杯

+0

任何想法:爲什麼我不能使用LayoutParams? – Sunny

0

我收到編譯錯誤說「這個名字‘的LayoutParams’在目前情況下不存在」改變時命令:

var pari = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT, 0.5f); 

我錯過了什麼嗎?

0

@ibtehaz:pari擁有一個在其中定製了textView的相關佈局。這種相關佈局將通過OnCreate方法調用的方法來誇大。在我定義了帶有信息的按鈕之後,我現在改變了相關佈局的填充,並且我得到了例如顯示4 * 4(行\列)的網格,這是我想要的。填充可以通過以下方式修改:

btn.SetPadding(10, 18, 10, 18); 

這仍然不是我最初想要的解決方案,而是現在它應該做的。感謝大家的幫助

相關問題