簡體   English   中英

如何以編程方式設置下邊距?

[英]How to set a bottom margin programmatically?

我有一個已包含多個元素的LinearLayout 我想以編程方式添加底部邊距。

我在適配器代碼中添加以下代碼段。

兩者都不起作用。

View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
params.setMargins(0, 0, 0, 10);
linearLayout.setLayoutParams(params);

這個甚至刪除了我的元素:

View linearLayout = convertView.findViewById(R.id.spinnerL);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
layoutParams.setMargins(30, 20, 30, 10);

linearLayout.setLayoutParams(layoutParams);

我究竟做錯了什么? 如何在運行時添加邊距?

在你的第一種方法中,你基本上說:

params is a variable that will call linearLayout.getLayoutParams();

然后在下一行中調用它並設置邊距,然后將布局參數設置為params,這與邊距設置不同。 嘗試做類似的東西:

View linearLayout =  convertView.findViewById(R.id.spinnerL);
        LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)linearLayout.getLayoutParams();
        params.setMargins(0, 0, 0, 10);
        linearLayout.setLayoutParams(params);
        linearLayout.requestLayout();

如果我錯了,請原諒我,我只是開始Java。 但這就是我從你的第一種方法中所理解的。 如果我錯了,有人請告訴我在哪里,因為我有興趣看到我的錯誤:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM