如何水平对齐内部布局

时间:2017-07-03 19:03:29

标签: java android layout alignment

在对话框中,我尝试以编程方式创建一个LinearLayout 包含一个一个TextView第二个一个GridLayout通过定义xml-layout)。如何在内部GridLayout内水平设置内部LinearLayout中心。

Desired_layout:

desired_layout

对于内部TextView,它非常简单(通过setGravity)。但我无法弄清楚如何为GridLayout做到这一点。我把LayoutParams设置为外部布局和内部布局,但无法找到方法。

btw :我知道xml-attributes android:layout_gravityandroid:gravity之间的区别主要是为包含子视图和视图本身定义布局,但为什么没有相应的java方法,如setLayoutGravity(),只有setGravity()

LinearLayout outerLayout = new LinearLayout(getContext());
outerLayout.setOrientation(LinearLayout.VERTICAL);
TextView txtView = new TextView(getContext());
txtView.setText("Hello world");
txtView.setGravity(Gravity.CENTER_HORIZONTAL);
GridLayout innerLayout = _buildMyGridLayout(getContext());
//what to do with the innerLayout?
outerLayout.addView(txtView);
outerLayout.addView(innerLayout);

1 个答案:

答案 0 :(得分:0)

  1. 创建LinearLayout.LayoutParams
  2. 的实例
  3. 设定重力 通过public field gravity,另请参阅Gravity
  4. 使用布局 GridLayout的params实例(使用addView method with LayoutParams