如何在Android中填充不同视图的完整屏幕

问题描述:

我有一个简单的问题,但这使我的开发变得糟糕透顶。如何在Android中填充不同视图的完整屏幕

在不同的活动我有不同的意见。例如textview,buttonview,editview。我想要的是,所有视图都应该在屏幕上动态匹配(不管我有一个视图还是5个视图),但它不会发生。一些时间观点出现在屏幕上,有时候屏幕上留下空白。

波纹管是我试过了,我不想提供的android:layout_height =“75dp”。

请F1

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" > 

      <Spinner 
       android:id="@+id/spinner1" 
       android:layout_width="fill_parent" 
       android:layout_height="75dp" 
       android:background="@drawable/btnmusic" 
       android:scaleType="fitCenter" /> 
     </LinearLayout> 

      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:onClick="onClick" 
       android:scaleType="fitXY" 
       android:src="@drawable/btnselectedsong" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:src="@drawable/btnplay" 
       android:onClick="onClick" 
       android:scaleType="fitXY" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:background="@drawable/btnpause" 
       android:onClick="onClick" 
       android:scaleType="centerInside" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:background="@drawable/btnstop" 
       android:onClick="onClick" 
       android:scaleType="fitCenter" /> 
     </LinearLayout> 

      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
    </LinearLayout> 
+0

使用'RelativeLayout'作为基础。 – SudoRahul 2013-03-08 09:40:02

设置layout_weight=1所有WIEWS,要平均分配的可用空间。

为您的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="odp" 
      android:layout_weight="1" > 

      <Spinner 
       android:id="@+id/spinner1" 
       android:layout_width="fill_parent" 
       android:layout_height="75dp" 
       android:background="@drawable/btnmusic" 
       android:scaleType="fitCenter" /> 
     </LinearLayout> 

      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="odp" 
      android:layout_weight="1" 
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="odp" 
      android:layout_weight="1" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:onClick="onClick" 
       android:scaleType="fitXY" 
       android:src="@drawable/btnselectedsong" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:src="@drawable/btnplay" 
       android:onClick="onClick" 
       android:scaleType="fitXY" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:background="@drawable/btnpause" 
       android:onClick="onClick" 
       android:scaleType="centerInside" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="75dp" 
       android:layout_weight="1" 
       android:background="@drawable/btnstop" 
       android:onClick="onClick" 
       android:scaleType="fitCenter" /> 
     </LinearLayout> 

      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="odp" 
      android:layout_weight="1"    
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
    </LinearLayout> 
+0

赛伦德拉当我申请的图片作为背景这是行不通的其他明智它的工作原理..但我“必须有”的图片作为背景上的按钮,所有的意见 – abidkhan303 2013-03-08 21:34:14

如果您使用相对布局,可以就该定义功能到屏幕的边缘,水平和垂直中心允许按钮的动态placment。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 


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

     <Spinner 
      android:id="@+id/spinner1" 
      android:layout_width="fill_parent" 
      android:layout_centerHorizontal="true" 
      android:background="@drawable/btnmusic" 
      android:scaleType="fitCenter" /> 
    </RelativeLayout> 
    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/spinner1" 
     android:text="Medium Text" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 
.... 
.... 
.... 
</RelativeLayout> 

像这样的东西应该给你一个动态的布局。

+0

chefburns你能elaborte你的答案与你编辑,包括代码为你一些例子 – abidkhan303 2013-03-08 21:34:48

+0

。 – chefburns 2013-03-11 09:53:46

由于您使用的是LinearLayout,因此您可以使用layout_weight来调整整个空间。

如果你想除了等间距给出具体的空间,您可以定义一个机器人:weightSum =“100” ,可以根据您的要求将其分配到子布局

我只是用一些演示尝试并改变了你的布局。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:android:weightSum="100" > 


     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="10" > 

      <Spinner 
       android:id="@+id/spinner1" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="@drawable/btnmusic" 
       android:scaleType="fitCenter" /> 


     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="10" > 

      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
      </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:orientation="horizontal" 
      android:layout_weight="40" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:onClick="onClick" 
       android:scaleType="fitXY" 
       android:src="@drawable/btnselectedsong" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:src="@drawable/btnplay" 
       android:onClick="onClick" 
       android:scaleType="fitXY" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:orientation="horizontal" 
      android:layout_weight="30" > 

      <ImageButton 
       android:id="@+id/btnplay" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/btnpause" 
       android:onClick="onClick" 
       android:scaleType="centerInside" /> 

      <ImageButton 
       android:id="@+id/btnpause" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/btnstop" 
       android:onClick="onClick" 
       android:scaleType="fitCenter" /> 
     </LinearLayout> 
<LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="10" > 
      <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Medium Text" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </LinearLayout> 
    </LinearLayout> 

希望这会帮助你。

+0

只有当我不将图片作为背景应用时,您的解决方案才有效。但线性布局按照图片尺寸拉伸。 :( – abidkhan303 2013-03-08 21:31:55

  1. LinearLayout作为家长
  2. 设置其layout_height="fill_parent"orientation="horizontal"
  3. 添加了views你,这个母公司
  4. 终于到每个视图设置layout_weight="1"

按照最后一行你的意思,不管h你有很多观点,它们都必须具有相同的高度,按照你的意思是第一行,所有的观点必须占据整个屏幕。