2016-07-05 57 views
2

问题是我想要在linearlayout中使用两个线性布局。我希望这两个线性布局可以根据android:layout_weight属性垂直对齐。但是看起来layout_weight没有任何效果。这里是我的布局
layout_weight一点也不工作

<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> 


下面是引用完整的XML代码:

<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" 
    tools:context=".MainActivity"> 

    <LinearLayout 
     android:layout_margin="16dp" 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:orientation="vertical" 
      android:layout_weight="3" > 

      <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> 
</ScrollView> 
+0

给母体布局权重 –

+0

想要布局的空间相等吗? – Piyush

+0

尝试将layout_height设置为“match_parent” –

回答

2
  1. ,滚动型
  2. 添加android:fillViewport="true"添加android:weightSum="4"主要的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> 

+0

明白了,@Vijay,谢谢 –

+0

@AakashBansal welcome –

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占据屏幕上的空间的其余部分。

相关问题