Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.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-如何限制线性布局的宽度_Android_Width_Android Linearlayout - Fatal编程技术网

Android-如何限制线性布局的宽度

Android-如何限制线性布局的宽度,android,width,android-linearlayout,Android,Width,Android Linearlayout,我试图将线性布局的宽度限制为400dp或更小。换句话说,如果布局引擎确定LinearLayout将是320dp,我不想更改任何内容,但如果它确定它将是480dp,我想将其减少到400dp 我已经想尽一切办法来实现这一点。我上一次尝试是创建一个从LinearLayout继承的自定义视图,并覆盖onMeasure方法来设置自定义尺寸,但是,我遇到的问题是,即使实际的LinearLayout宽度减小,其中的所有视图(即:按钮等)仍按从未更改的宽度进行布局,所以他们被从侧面切断了 如果有人对如何实现这一

我试图将线性布局的宽度限制为400dp或更小。换句话说,如果布局引擎确定LinearLayout将是320dp,我不想更改任何内容,但如果它确定它将是480dp,我想将其减少到400dp

我已经想尽一切办法来实现这一点。我上一次尝试是创建一个从LinearLayout继承的自定义视图,并覆盖onMeasure方法来设置自定义尺寸,但是,我遇到的问题是,即使实际的LinearLayout宽度减小,其中的所有视图(即:按钮等)仍按从未更改的宽度进行布局,所以他们被从侧面切断了


如果有人对如何实现这一点有任何建议,或者知道有任何开源应用程序可以做到这一点,我将不胜感激。

您应该检查
getMeasuredWidth()
。如果它比您想要的大,请使用正确宽度的
setLayoutParams()
。请记住,在Java中,单位是以像素为单位的,因此需要对其进行适当的缩放

听起来您需要创建一个自定义视图组。你确定你做得对吗?