0

我以编程方式创建了四个Textview并将其添加到我的Linearlayout.my 线性布局中,宽度为 216dp,而我以编程方式创建TextView的宽度和高度为 48dp。我想在TextView. 我写了一些代码,但我收到了这个结果

如您所见,填充不正确,因为右侧不正确

这是我的代码

 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?如果有人有解决方案,请帮助我,谢谢。

4

3 回答 3

0

以编程方式在视图上添加填充

在这里,您有在 java 代码中创建填充的解决方案。

于 2015-11-06T10:34:41.490 回答
0

首先将适当的 android:paddingLeft 添加到您添加的子视图中,如下所示:

<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
        }
于 2015-11-06T10:51:34.873 回答
0

尝试这个,

public void setPadding(int left,int top,int right,int bottom)

view.setPadding(0,padding,0,0);
于 2015-11-06T10:40:47.987 回答