【问题标题】:Android: set margin of TableRow's contents (means: margin between columns)Android:设置 TableRow 内容的边距(意思是:列之间的边距)
【发布时间】:2012-05-29 10:31:14
【问题描述】:

我通过代码动态创建了一个 TableLayout,并希望在列之间设置一个边距。我的 TableRows 包含的唯一内容类型是 TextView。

我的意图是在每个 TextView 上放置一个简单的android:layout_marginRight。但我想通过 xml 而不是代码来定义它。

我尝试了什么:

代码:

txtView.setTextAppearance(context, R.style.TableTextView);
txtView.setText(content);
tableRow.addView(txtView);

XML

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="TableTextView">
      <item name="android:textAppearance">?android:attr/textAppearanceLarge</item>
      <item name="android:textStyle">bold</item>
      <item name="android:layout_marginRight">5dip</item>
  </style>
</resources>

会发生什么:

XML 中的layout_marginRight 集不起作用,但XML 中的textAppearancetextStyle 集起作用。我假设 setTextAppearance 方法是为 TextView 分配边距的错误方法?如果我可以通过 XML(就像我在上面尝试过的那样)而不是 Java 代码来做到这一点,那就太好了。

谢谢!

【问题讨论】:

    标签: java android mobile


    【解决方案1】:

    发生这种情况是因为您将样式设置为文本本身而不是 TextView 元素。 您应该在 XML 中设置元素样式。也可以从代码中实现这一点,但我认为最好在 XML 布局文件中做到这一点。

    类似:

    <TextView xmlns:android="http://schemas.android.com/apk/res/android" 
        style="@style/mTableTextView" /> 
    

    关于从代码中设置它,我不是专家,但我知道你可以以某种方式膨胀它。 查看ThisThis 问题。

    【讨论】:

    • Thx,看起来不错,但如何将其应用于动态生成的 TextView 对象?问题是我需要在 Java 而不是 XML 中创建 TextViews 本身,因为我的表中的 TextViews 数量不是静态的,并且可能会不时变化。
    • 你可以夸大它,我不是专家,而是通过链接修改答案
    【解决方案2】:

    您想在列之间留出边距

    android.widget.TableRow.LayoutParams param = new android.widget.TableRow.LayoutParams();
    param.rightMargin = Converter.dpToPixel(10, getContext()); // right-margin = 10dp
    button.setLayoutParams(param);
    
    // Converter:
    private static Float scale;
    public static int dpToPixel(int dp, Context context) {
        if (scale == null)
            scale = context.getResources().getDisplayMetrics().density;
        return (int) ((float) dp * scale);
    }
    

    您可以设置不同的值表参数。

    【讨论】:

    • 谢谢,如果通过 XML 的方式(我更喜欢)不起作用,我会试试这个。
    • 如果对您有帮助!请欣赏
    猜你喜欢
    • 2012-07-05
    • 2013-09-05
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多