0

編程方式創建了四個Textviews在我Linearlayout。我的LinearLayout加入它具有216dp寬度TextView我創建編程有48 DP寬度和高度。 我想在TextView之間添加填充。我寫了一些代碼,但我接受這個結果機器人正確填充編程

as you can see padding is not correct,because in right side is incorrect

這是我的代碼

for (int i = 0; i < mDigits; i++) { 
     DigitView digitView = new DigitView(getContext()); 

     digitView.setWidth(valueInPixels);//48dp 
     digitView.setHeight(valueInPixels);//48dp 
     digitView.setTextColor(Color.WHITE); 
     digitView.setTextSize(mDigitTextSize); 
     digitView.setGravity(Gravity.CENTER); 
     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
      digitView.setElevation(mDigitElevation); 
     } 

     LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
     if (i > 0) { 
      lp.leftMargin = 10;//problem is this line 
     } 
     childView.addView(digitView, lp);//childview 216dp 
    } 

我怎樣才能創建視圖programmatically之間的正確填充? 如果有人有解決方案,請幫我 謝謝。

+0

爲您的動態文本字段添加邊距並移除此部分:LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT); if(i> 0){ lp.leftMargin = 10; //問題是這條線 } – TdSoft

+0

@TdSoft我不知道該怎麼做,你可以告訴我源代碼或更新我的代碼嗎? – donoachua

+1

可能重複的[在編程上添加填充視圖](http://stackoverflow.com/questions/9685658/add-padding-on-view-programmatically) – Nanoc

回答

0

首先加入適當的android:paddingLeft您childview我加入如下:

<LinearLayout 
     android:id="@+id/childView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="5dp" 
     android:background="#000" 
     android:orientation="horizontal"> 

然後編輯您的代碼如下

for (int i = 0; i < 4; i++) { 
      DigitView digitView = new DigitView(this); 

      digitView.setWidth(valueInPixels);//48dp 
      digitView.setHeight(valueInPixels);//48dp 
      digitView.setTextColor(Color.WHITE); 
      digitView.setBackgroundColor(Color.YELLOW); 
      digitView.setTextSize(mDigitTextSize); 
      digitView.setGravity(Gravity.CENTER); 
      if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { 
       digitView.setElevation(mDigitElevation); 
      } 

      LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
          lp.rightMargin = 10;//problem is this line 

      childView.addView(digitView, lp);//childview 216dp 
     } 
+0

謝謝你,但5dp和rightMargin meybe是不正確的解決方案,因爲不同的屏幕大小meybe會是問題 – donoachua

+0

使用values/dimen.xml來定義不同屏幕大小的填充大小。 – TdSoft

0

Add padding on view programmatically

在這裏,你有解決方案來創建一個Java代碼中填充。

+0

thanks.but我知道要添加填充,但正如我所說我的容器有216 dp寬度,並且在我的視圖中有48dp寬度並且簡單,我希望在我的views.please之間填充相同的圖片 – donoachua

+0

使用values/dimen.xml來定義不同屏幕尺寸的停車尺寸 – TdSoft

0

試試這個,

公共無效setPadding(INT左,INT頂部,詮釋權,詮釋底部)

view.setPadding(0,padding,0,0); 
+0

thanks.but我知道要添加填充,但正如我所說我的容器有216 dp寬度,並且在我的視圖中有48dp寬度,而且我希望在我的views.please之間填充相同的填充。請參閱我的照片@Parth Bhayani – donoachua

+0

爲此,您需要爲每個視圖提供權重並將該視圖添加到您的活動中,這很好。 –

+0

你能告訴我如何解決這個問題嗎? – donoachua