【问题标题】:How to horizontally align an inner layout如何水平对齐内部布局
【发布时间】:2017-12-07 03:00:53
【问题描述】:

在一个对话框中,我试图以编程方式创建一个 LinearLayout,其中包含 first 一个 TextView 和 second 一个 GridLayout(而不是通过定义 xml-layout )。如何使内部GridLayout 在外部LinearLayout 内水平居中。

Desired_layout:

对于内部TextView,它非常简单(通过setGravity)。但我不知道如何为GridLayout 做这件事。我将LayoutParams 设置为外部布局和内部布局,但找不到方法。

btw:我知道xml属性android:layout_gravity和android: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);

【问题讨论】:

    标签: java android layout alignment


    【解决方案1】:
    1. 创建LinearLayout.LayoutParams的实例
    2. 设置重力 通过public field gravity,另见Gravity
    3. 使用布局 GridLayout 的 params 实例(使用 addView method with LayoutParams)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-26
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 2017-04-05
      • 2012-06-04
      相关资源
      最近更新 更多