2013-06-11 127 views
0

我試圖讓ListView保持相同的大小,即使它溢出。但是,一旦ListView溢出,它會將屏幕下方的按鈕按下。我如何防止它推動其下的其他元素?ListView將按鈕按下屏幕

正如你可以從上面的圖片看,第二個顯示的按鈕被推離屏幕一次ListView控件溢出。

XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:background="@color/splash_bg" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:background="@color/splash_bg" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:gravity="center" 
    android:padding="10dp" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/subtitle" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textSize="20sp" 
     android:paddingBottom="10dp" 
     android:textColor="@color/splash_text" 
     android:text="@string/sub" /> 

    <EditText 
     android:id="@+id/grp_name" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:hint="@string/field1" 
     android:lines="1" /> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/members" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:textSize="15sp" 
      android:paddingTop="5dp" 
      android:textColor="@color/splash_text" 
      android:text="@string/members" /> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:background="@color/splash_bg" 
      android:orientation="horizontal" > 

      <EditText 
       android:id="@+id/name" 
       android:layout_width="0dip" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:hint="@string/field2" /> 

      <Button 
       android:id="@+id/add" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="@string/add" /> 

     </LinearLayout> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:paddingLeft="5dp" 
      android:background="@color/splash_bg" /> 

    </LinearLayout> 

</LinearLayout> 

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="bottom" 
    android:paddingLeft="5dp" 
    android:paddingRight="5dp" 
    android:paddingBottom="5dp" 
    android:paddingTop="10dp" > 

    <Button 
     android:id="@+id/save_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="5" 
     android:text="Save" /> 

    <Button 
     android:id="@+id/cancel_btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Cancel" /> 

</LinearLayout> 

回答

7

Changet

<ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:paddingLeft="5dp" 
     android:background="@color/splash_bg" /> 

<ListView 
     android:id="@android:id/list" 
     android:layout_width="fill_parent" 
     android:layout_height="0dip" 
     android:layout_weight="1" 
     android:paddingLeft="5dp" 
     android:background="@color/splash_bg" /> 
+0

你爲什麼不使用一個相對佈局,而不是線性佈局不工作 – jl90

+0

@ jl90?試試我的答案並修改相同的 – Raghunandan

+0

@ jl90你試過我的答案嗎? – Raghunandan

2

您可以使用此相對佈局。修改下面根據您的需要

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center_vertical" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginRight="11dp" 
     android:layout_marginTop="11dp" 
     android:text="Create New Group" /> 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_below="@+id/textView1" 
     android:layout_marginTop="23dp" 
     android:ems="10" 
     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/editText1" 
     android:layout_marginLeft="11dp" 
     android:layout_marginTop="18dp" 
     android:text="Members" /> 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignRight="@+id/textView1" 
     android:layout_below="@+id/textView2" 
     android:layout_marginTop="31dp" 
     android:ems="10" /> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_above="@+id/button1" 
     android:layout_below="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingLeft="5dp" 
     /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/editText2" 
     android:layout_alignBottom="@+id/editText2" 
     android:layout_alignParentRight="true" 
     android:layout_marginRight="13dp" 
     android:text="ADD" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignRight="@+id/button3" 
     android:layout_below="@android:id/list" 
     android:text="Cancel" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_toLeftOf="@+id/textView1" 
     android:text="Save" /> 

</RelativeLayout> 

enter image description here

-1

我加入這一行:android:layout_weight="1"到的LinearLayout其中存在的EditText(我的問題的根源),問題就消失了!
看看代碼,我評論<!-- HERE!!! -->


大聲笑我知道我很晚回答這個問答,,對不起,,但任何人誰仍在努力!

enter image description here


<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_horizontal"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" 
     android:id="@+id/linearLayout1"> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="ID : " 
      android:layout_margin="@dimen/EdgeMargins"/> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:inputType="number" 
      android:ems="10" 
      android:id="@+id/editText" 
      android:layout_margin="@dimen/EdgeMargins"/> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" 
     android:id="@+id/linearLayout2" 
     android:layout_weight="1"> <!-- HERE!!! --> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:textAppearance="?android:attr/textAppearanceLarge" 
      android:text="Any Notes :" 
      android:id="@+id/textView2" 
      android:layout_margin="@dimen/EdgeMargins"/> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/editText2" 
      android:layout_margin="@dimen/EdgeMargins" /> 

    </LinearLayout> 

     <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Done" 
     android:id="@+id/button" 
     android:layout_margin="@dimen/EdgeMargins" /> 

</LinearLayout> 


我有我的問題與突出的EditText在PIC ,,,它以輸入的文本擴展和推動完成按鈕下來!
我知道我的解決方案可能看起來很愚蠢,但我花了一整天的時間來解決這個問題!

希望它可以幫助^ _^GL