如何停止android GUI中的组件不重叠

问题描述:

我想让图像按钮完全固定在屏幕和微调器上。它似乎有一个重量总和和重量布局的问题。我试图解决它,但没有得到任何地方。这是我的代码:如何停止android GUI中的组件不重叠

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    tools:context=".ElderActivity" 
    android:orientation="vertical" 
    android:weightSum="1"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:id="@+id/first" 
     android:background="#ffab7c74" 
     android:layout_weight="1"> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Smart House" 
      android:id="@+id/textView" 
      android:gravity="center" 
      android:autoText="true" 
      android:textColor="#fffff7f4" /> 
    </LinearLayout> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/environment" 
      android:layout_weight="1" 
      android:id="@+id/imageButton" /> 

     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/law" 
      android:layout_weight="1" /> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <Spinner 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/spinner" 
      android:layout_weight="1" /> 
     <Spinner 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/spinner1" 
      android:layout_weight="1" /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/consumer" 
      android:layout_weight="1"/> 
     <ImageButton 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:src="@drawable/educations" 
      android:layout_weight="1"/> 

    </LinearLayout> 
    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
     <Spinner 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/spinner2" 
      android:layout_weight="1" /> 
     <Spinner 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/spinner3" 
      android:layout_weight="1" /> 

    </LinearLayout> 


</LinearLayout> 

[屏幕screem射击] [1]:https://i.stack.imgur.com/tPFDi.jpg

这是非常不好的做法,使用重量选择,特别是如果你有布局的深层次结构重量的选择。对于您的示例,您需要使用RelativeLayout或甚至TableLayout

但是,如果你想搞乱你的底部,您可以使用棘手的事情,如:

<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    > 

    <View android:id="@+id/strut" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_centerHorizontal="true" 
     android:layout_centerVertical="true"/> 

    <Button 
     android:id="@+id/btn1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/text1" 
     android:layout_alignEnd="@id/strut" 
     android:layout_alignParentStart="true" 
     /> 

    <Button 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignStart="@+id/strut" 
     android:layout_alignParentEnd="true" 
     android:text="@string/text2" 
     /> 

</RelativeLayout>