【问题标题】:Programmatically creating and setting LinearLayout divider以编程方式创建和设置 LinearLayout 分隔线
【发布时间】:2018-05-09 00:19:43
【问题描述】:

我有一个水平的LinearLayout,我希望它的子视图之间有 50 像素的空白空间。经过一些研究,我发现分隔线可以完成这项工作。我不想使用 XML,而是以编程方式创建所有内容。这是我的代码:

LinearLayout parent = new LinearLayout(getContext());
parent.setOrientation(LinearLayout.HORIZONTAL);

ColorDrawable divider = new ColorDrawable(Color.TRANSPARENT);
divider.setBounds(0, 0, 50, 0);             
parent.setDividerDrawable(divider);
parent.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);

....children are added here to parent...

不幸的是,它不起作用。孩子之间不会出现空格。

有人知道那里出了什么问题吗?

【问题讨论】:

  • 我可以出于好奇问一下您为什么不想使用 XML 吗?
  • 如果它是透明的,为什么它是可见的?
  • @meditat:应该是空白,这就是我使用透明的原因。
  • @LieForBananas:它是通用 GUI 工具包的一部分。
  • 知道了,谢谢你的回答。

标签: android android-linearlayout android-drawable


【解决方案1】:

要回答我自己的问题,ColorDrawable 是罪魁祸首。当使用ShapeDrawable 时,它可以正常工作,即像这样:

LinearLayout parent = new LinearLayout(getContext());
parent.setOrientation(LinearLayout.HORIZONTAL);

ShapeDrawable divider = new ShapeDrawable();
divider.setIntrinsicWidth(50);
divider.setAlpha(0);             
parent.setDividerDrawable(divider);
parent.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    相关资源
    最近更新 更多