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