Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以编程方式创建和设置LinearLayout分隔符_Android_Android Linearlayout_Android Drawable - Fatal编程技术网

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

Android 以编程方式创建和设置LinearLayout分隔符,android,android-linearlayout,android-drawable,Android,Android Linearlayout,Android Drawable,我有一个水平LinearLayout,我希望在它的子视图之间有50像素的空白。经过一些研究,我发现分频器可以做这项工作。我不想使用XML,而是以编程方式创建所有内容。这是我的密码: LinearLayout parent = new LinearLayout(getContext()); parent.setOrientation(LinearLayout.HORIZONTAL); ColorDrawable divider = new ColorDrawable(Color.TRANSPAR

我有一个水平
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...
不幸的是,它不起作用。子项之间没有空格


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

回答我自己的问题,罪魁祸首是
colordravable
。当使用
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);

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

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