问题是我想在linearlayout中有两个linearlayout。我希望这两个linearlayout根据android:layout_weight属性垂直对齐。但是看起来layout_weight没有任何效果。这是我的布局
as.data.frame(sapply(df1, function(x) c(class(x), mean(x, na.rm=TRUE),
sum(is.na(x)))), stringsAsFactors=FALSE)
以下是完整的XML代码供参考:
<ScrollView>
.....
<LinearLayout>
...
<LinearLayout> //1.Here the Linear Layout is not getting aligned properly according to the layout_weight
...
android:layout_height="0dp"
android:layout_weight="3"
.
.
.
.
</LinearLayout>
<LinearLayout> //2.These two Linear layouts are to be aligned vertically and this second layout is required to use very less space as compared to first layout
. . .
android:layout_height="0dp"
android:layout_weight="1"
.
.
.
</LinearLayout>
</LinearLayout>
</ScrollView>
答案 0 :(得分:2)
android:fillViewport="true"
android:weightSum="4"
main linearlayout 以下是完整的代码,
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
tools:context=".DemoActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:weightSum="4">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="3"
android:orientation="vertical">
<EditText
android:id="@+id/edittext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:layout_marginTop="30dp"
android:ems="5"
android:hint="Name"
android:inputType="text" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:text="Toppings"
android:textAllCaps="true" />
<CheckBox
android:id="@+id/whippedcream_checkbox_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:paddingLeft="24dp"
android:text="Whipped Cream"
android:textSize="16sp" />
<CheckBox
android:id="@+id/chocolate_checkbox_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:paddingLeft="24dp"
android:text="Chocolate"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:text="Quantity"
android:textAllCaps="true" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="decrement"
android:text="-" />
<TextView
android:id="@+id/quantity_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:text="2"
android:textColor="@android:color/black"
android:textSize="16sp" />
<Button
android:layout_width="48dp"
android:layout_height="48dp"
android:onClick="increment"
android:text="+" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="order summary"
android:textAllCaps="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:onClick="submitOrder"
android:text="Order" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="PRICE:" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Coffee: Rs.5 per cup" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Whipped Cream: Rs.1 per cup additional" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Chocolate: Rs.2 per cup additional" />
</LinearLayout>
</LinearLayout>
答案 1 :(得分:1)
两个线性布局中的所有内容都将layout_height设置为wrap_content。
重要的是,权重只有在没有加权layout_height / layout_width的所有视图占用屏幕空间后才能工作。
示例:
<?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">
<TextView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:text="abcd1" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abcd2" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="abcd3" />
</LinearLayout>
这里abcd2和abcd3 TextViews将首先分配空间,然后abcd1将占据屏幕上的其余空间。