【问题标题】:Align TextViews to top of LinearLayout将 TextViews 对齐到 LinearLayout 的顶部
【发布时间】:2015-07-31 18:22:41
【问题描述】:

我正在创建一个在 LinearLayout 中有四个不同 TextView 的应用程序。 LinearLayout 的权重总和为 4,每个 TextView 的权重为 1(以使它们具有均匀的宽度)。 我的第一个问题是其中两个 TextView 的高度比其他两个大,这使它们居中,但我希望它们与 LinearLayout 顶部对齐,因此所有 TextView 都有一条直线。

我的第二个问题是其中一个字符串比 TextView 的宽度长,这使得 TextView 稍微向下(它甚至不再居中并且在 LinearLayout 父级之外,所以所有 TextView 宽度都是未显示)。

我的代码:

        LinearLayout layout = new LinearLayout(context);
        LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
        layout.setLayoutParams(layoutParams);
        layout.setWeightSum(lessons);

        for (int i = 0; i < lessons; i++) {
            TextView text = new TextView(context);
            LayoutParams textParams = new LayoutParams((int) (0 * (context.getResources().getDisplayMetrics().density) + 0.5f),
                    (int) (length[i] * (context.getResources().getDisplayMetrics().density) + 0.5f), 1);
            text.setLayoutParams(textParams);

            System.out.println(length[i]);

            text.setPadding((int) (8 * (context.getResources().getDisplayMetrics().density) + 0.5f), 0, 0, 0);
            text.setTextColor(context.getResources().getColor(R.color.white_text));
            text.setBackgroundColor(context.getResources().getColor(R.color.class.getField(name[i]).getInt(null)));
            text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
            text.setGravity(Gravity.CENTER_VERTICAL);
            text.setText(R.string.class.getField(name[i]).getInt(null));

            layout.addView(text);
        }

        week[day].addView(layout);

【问题讨论】:

  • 2 建议 .... 1-) 移动到 RelativeLayout ,2-) 改用 xml 布局
  • @Muhannad Fakhouri 我将测试RelativeLayout,但xm 不是一个选择,因为布局需要根据用户选择动态。

标签: android android-layout alignment android-linearlayout textview


【解决方案1】:

由于每个用户只需要根据他们所属的组查看其中一个 TextView,因此我将其设为用户设置,并且只为该用户显示正确的 TextView。

【讨论】:

    【解决方案2】:

    发布 xml 代码...但在我看来,您没有将高度或宽度设置为 0dp(如果是垂直布局则为高度/如果是水平布局则为宽度)...另外,请确保您的所有 textViews有 android:singleLine="true" 属性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-27
      • 1970-01-01
      • 2013-12-21
      • 1970-01-01
      • 2015-12-16
      • 2020-11-16
      • 2021-12-31
      相关资源
      最近更新 更多