2013-03-08 112 views
0

我有一個簡單的問題,但這使我的開發變得糟糕透頂。如何在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

回答

0

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

0

如果您使用相對佈局,可以就該定義功能到屏幕的邊緣,水平和垂直中心允許按鈕的動態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

0

由於您使用的是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

0
  1. LinearLayout作爲家長
  2. 設置其layout_height="fill_parent"orientation="horizontal"
  3. 添加了views你,這個母公司
  4. 終於到每個視圖設置layout_weight="1"

按照最後一行你的意思,不管h你有很多觀點,它們都必須具有相同的高度,按照你的意思是第一行,所有的觀點必須佔據整個屏幕。

相關問題