我无法弄清楚Android xml大纲:
三个线性布局相互叠加,其中 1 和 2 具有相同的高度,无论内容如何, 3 是换行内容
3 会有一个高度的换行内容,然后我希望 1 和 2 具有占据所有空间的相等高度 3 以上,无论其内容如何。我遇到的问题是 1 和 2 不会平均分配空间。 3 也需要与底部对齐。
我尝试过的事情:
所有内容都处于相对布局中,然后将 1 和 2 置于线性布局中,每个线程布局的权重均为1. - 这不是因为每个 1 , 2 和 3 每个都包含一行3个按钮,它们各自有权重,所以我收到错误“不要嵌套权重“。
在相对布局中,只需将 3 对齐到底部,然后 1 和 2 为“以上”和“在“其他人”之下。 - 这不能均匀地分隔 1 和 2
还有其他想法吗?任何建议都非常感谢。谢谢! :d
(我在这方面挣扎得足够长,以至于我创建了我的第一个stackoverflow帐户!)
编辑1:澄清 1 和 2 是每个3个按钮的线性布局,水平定向,weight_sum = 3,每个按钮的权重= 1(因此问题嵌套权重)。
答案 0 :(得分:0)
你应该使用LinearLayout
而不是Relative
使用权重,我想这就是你想要的,你可以在其中添加小部件,或者可以用任何使用相同必需属性的小部件替换它们(权重,高度)宽度)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:background="#00efff"
android:layout_weight="2"
android:layout_height="0dp"></LinearLayout>
<LinearLayout
android:layout_marginTop="6dp"
android:background="#19bdda"
android:layout_weight="2"
android:layout_width="match_parent"
android:layout_height="0dp"></LinearLayout>
<LinearLayout
android:layout_marginTop="6dp"
android:background="#65edda"
android:layout_weight="1"
android:layout_gravity="bottom"
android:layout_width="match_parent"
android:layout_height="0dp"></LinearLayout>
</LinearLayout>
答案 1 :(得分:0)
权重应仅与线性布局一起使用,并避免嵌套权重。使用权重渲染视图需要更多时间。 也不要嵌套布局,使用Android的最佳实践。将线性布局嵌套在相对布局中,而不是仅使用权重线性布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="2">
<Button
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="1"
android:textSize="30sp" />
<Button
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="2"
android:textSize="30sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="3"
android:textSize="30sp" />
</LinearLayout>
答案 2 :(得分:0)
使用LinearLayout
作为父布局。在其中添加3 LinearLayouts
并按如下方式应用layout_weight
。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/inv_main_content"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/ll1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/holo_red_light"
android:orientation="horizontal"></LinearLayout>
<LinearLayout
android:id="@+id/ll2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@android:color/holo_blue_bright"
android:orientation="horizontal"></LinearLayout>
<LinearLayout
android:id="@+id/ll3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0"
android:background="@android:color/holo_green_light"
android:orientation="horizontal">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="hello"/>
</LinearLayout>
</LinearLayout>
您可以通过在第3 TextView
内添加Widget
或任何layout
进行测试,它会增长weight 0
。 layout_weight 0
必须在layout
给出空格时给予layout_weight 1
,父母不会忽略layouts
,tdf
Out:
A B C
0 NaN 0.195070 -1.781563
1 -0.729045 0.196557 0.354758
2 0.616887 0.008628 NaN
3 NaN NaN 0.037006
4 0.767902 NaN NaN
5 -0.805627 NaN NaN
6 1.133080 NaN -0.659892
7 -1.139802 0.784958 -0.554310
8 -0.470638 -0.216950 NaN
9 -0.392389 -3.046143 0.543312
idx = tdf['A'] > 0
myslice = tdf.loc[idx]
以上其他2 myslice.loc[:,'B'].fillna(myslice['B'].mean(), inplace = True)
C:\Anaconda3\envs\p3\lib\site-packages\pandas\core\generic.py:3191: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
self._update_inplace(new_data)
myslice
Out:
A B C
2 0.616887 0.008628 NaN
4 0.767902 0.008628 NaN
6 1.133080 0.008628 -0.659892
tdf
Out:
A B C
0 NaN 0.195070 -1.781563
1 -0.729045 0.196557 0.354758
2 0.616887 0.008628 NaN
3 NaN NaN 0.037006
4 0.767902 NaN NaN
5 -0.805627 NaN NaN
6 1.133080 NaN -0.659892
7 -1.139802 0.784958 -0.554310
8 -0.470638 -0.216950 NaN
9 -0.392389 -3.046143 0.543312
将给予他们平等高度。