Java 如何水平对齐内部布局

Java 如何水平对齐内部布局,java,android,layout,alignment,Java,Android,Layout,Alignment,在一个对话框中,我试图创建一个LinearLayout,第一个包含TextView,第二个包含GridLayout(不是通过定义xml布局)。如何使内部网格布局在外部线性布局内水平居中 所需布局: 对于内部文本视图,它非常简单(通过setGravity)。但是我不知道如何为GridLayout执行此操作。我把LayoutParams设置为外部布局和内部布局,但找不到方法 顺便说一句:我知道xml属性android:layout_gravity和android:gravity之间的区别基本上是为

在一个对话框中,我试图创建一个
LinearLayout
,第一个包含
TextView
,第二个包含
GridLayout
(不是通过定义xml布局)。如何使内部
网格布局
在外部
线性布局
内水平居中

所需布局:

对于内部
文本视图
,它非常简单(通过
setGravity
)。但是我不知道如何为
GridLayout
执行此操作。我把
LayoutParams
设置为外部布局和内部布局,但找不到方法

顺便说一句:我知道xml属性
android:layout_gravity
android:gravity
之间的区别基本上是为包含的子视图和视图本身定义布局,但是为什么没有相应的java方法,比如
setLayoutGravity()
,而只有
setGravity()

  • 创建的实例
  • 设置重力 via,另见
  • 使用布局 GridLayout的params实例(使用)
  • 创建的实例
  • 设置重力 via,另见
  • 使用布局 GridLayout的params实例(使用)
  • 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);