Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.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 - Fatal编程技术网

Android 除了使用线性布局和布局权重外,是否还有其他方法来均匀分布视图?

Android 除了使用线性布局和布局权重外,是否还有其他方法来均匀分布视图?,android,Android,现在我在另一个视图中有布局权重的视图,该视图也具有相同的属性,这导致外部视图以指数方式计算。我正在考虑在内部视图中嵌套另一组具有权重的视图,但这会导致最外层视图的计算次数超出我的预期。我只是将这些区域平均分割(一组中的每个视图都具有相同的权重),但我希望无论屏幕大小或DPI如何,所有视图都能正确缩放。有没有其他方法可以有效地在另一个视图中分割视图?DeeV的答案很好地解决了这一问题: 将顶部的LinearLayout与RelativeLayout交换,并将两个子项对齐到中间的>不可见视图中,如下

现在我在另一个视图中有布局权重的视图,该视图也具有相同的属性,这导致外部视图以指数方式计算。我正在考虑在内部视图中嵌套另一组具有权重的视图,但这会导致最外层视图的计算次数超出我的预期。我只是将这些区域平均分割(一组中的每个视图都具有相同的权重),但我希望无论屏幕大小或DPI如何,所有视图都能正确缩放。有没有其他方法可以有效地在另一个视图中分割视图?

DeeV的答案很好地解决了这一问题:

将顶部的
LinearLayout
RelativeLayout
交换,并将两个子项对齐到中间的>不可见
视图中,如下所示:



使用
layout\u weight
通常是最好的方法。如果您没有看到所需的布局,那么您似乎在错误的位置使用了
layout\u weight
,或者使用了错误的“weight”值。发布您的布局XML,并解释您希望布局的外观。我认为我从类似主题得到的答案会有所帮助:注意,这只适用于均匀分布的布局。您可以通过嵌套越来越多的布局来实现这一点,但在某一点上,它比仅仅使用
layout\u-weight
@DeeV要好得多,看起来它可以工作。我很喜欢你建议的只处理警告的方式,我自己也这么认为,但每当提到测量或计算中的“指数增长”这个短语时,我就有点怀疑了。如果布局中的布局中的布局中的布局都使用嵌套权重,那么它可能会“指数增长”。如果加载布局需要半秒钟,那么您可能需要重新考虑设计或布局方式。但是,皮棉警告出现的频率太高,以至于90%的警告与此无关。不过,在它成为一个问题之前,你真的不需要处理它。
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/top"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
      android:id="@+id/center_point"
      android:layout_width="0dp"
      android:layout_height="0dp"
      android:layout_centerInParent="true"/>

    <LinearLayout
      android:id="@+id/left_layout"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_alignParentLeft="true"
      android:layout_alignRight="@+id/center_point>
    </Linearlayout>


    <LinearLayout
      android:id="@+id/right_layout"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:layout_alignParentRight="true"
      android:layout_alignLeft="@+id/center_point>
    </Linearlayout>

</RelativeLayout>