如何为TextView同时使用边距和重力

时间:2015-11-26 14:40:03

标签: android

我正在生成像这样的TextView:

for(String substring : list)
{
   TextView myTv = new TextView(this);
   myTv.setTextSize(20);
   myTv.setGravity(Gravity.CENTER);
   myTv.setText(substring);
}

这很有效,除了我想在TextViews之间留出更多空间(TextViews彼此相同)。所以我将我的代码更改为此设置底部边距:

for(String substring : list)

    {
       TextView myTv = new TextView(this);
       myTv.setTextSize(20);
       LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, AbsListView.LayoutParams.WRAP_CONTENT);
       llp.setMargins(0, 0, 0, 30);
       myTv.setLayoutParams(llp);
       myTv.setGravity(Gravity.CENTER);
       myTv.setText(substring);
    }

现在我在TextViews之间有边距,但现在所有TextView都向左对齐。如何在TextView之间留出空间并使TextView居中?感谢。

2 个答案:

答案 0 :(得分:1)

for(String substring : list)

{
   TextView myTv = new TextView(this);
   myTv.setTextSize(20);
   LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(AbsListView.LayoutParams.WRAP_CONTENT, AbsListView.LayoutParams.WRAP_CONTENT);
   llp.setMargins(0, 0, 0, 30);
   //notice this line.
   llp.gravity = Gravity.CENTER;
   myTv.setLayoutParams(llp);
   myTv.setGravity(Gravity.CENTER);
   myTv.setText(substring);
}

答案 1 :(得分:0)

以XML格式控制视图更容易。

您可以使用所需的文本视图创建text_view.xml布局文件。然后再将它膨胀多少次。

text_view.xml

<TextView
    android:layout_widht="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:layout_marginBottom="30dp"
    android:gravity="center"
    ... />

在您的活动/片段

TextView textView = (TextView) LayoutInflater.from(context).inflate(new LinearLayout(context), R.layout.text_view, false);
textView.setText("some text");