以编程方式创建和设置LinearLayout分隔符

时间:2018-05-07 17:58:00

标签: android android-linearlayout android-drawable

我有一个水平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...

不幸的是,它不起作用。孩子们之间没有空白区域。

有没有人知道那里有什么问题?

1 个答案:

答案 0 :(得分:0)

要回答我自己的问题,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);