2014-01-25 20 views
-2

下來,這是我的代碼:Android。將一個靜態的按鈕在屏幕

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




<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_gravity="center" > 

</ListView> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="end" 
    > 

    <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.73" 
     android:ems="10" /> 

    <Button 
     android:id="@+id/button1" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/enviar" /> 
</LinearLayout> 

它沒有運行我怎麼想。我需要列表視圖有一個靜態大小:所有屏幕 - 其餘對象。我需要列表視圖在頂部。

問題是,如果我把android:layout_height =「match_parent」列表視圖的大小是所有屏幕。如果我把android:layout_height =「wrap_content」的大小設置爲可變的,並且當我有很多元素時,剩下的對象是不可見的。

我需要列表視圖中的對象總是可見的。有些類似於WhatsApp對話屏幕。你明白我說的嗎?對不起,我的英語不好:)

回答

1

你可以有一個RelativeLayout。將LinearLayout放置在底部。在LinearLayout上方放置listview。

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

    <LinearLayout // this can be vartical or horizontal orientation depending on your need 
     android:id="@+id/linearLayout1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:gravity="center" 
     android:orientation="horizontal" > 

     <EditText 
     android:id="@+id/editText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" /> 

    <Button 
     android:id="@+id/button1" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="enviar" /> 


</LinearLayout> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/linearLayout1" 
     android:layout_centerHorizontal="true" > 

    </ListView> 

</RelativeLayout> 

或使用單一的RelativeLayout

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

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

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:ems="10" > 

     <requestFocus /> 
    </EditText> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/editText1" 
     android:layout_alignEnd="@+id/button1" 
     android:layout_alignParentRight="true" > 

    </ListView> 

</RelativeLayout> 
+1

這是解決方案。謝謝!!! – user3235831

+0

@ user3235831請閱讀http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work因爲你是新來的stackoverflow – Raghunandan

+0

如果我使用其他手機,視圖是類似的? – user3235831

0

我會建議使用同時擁有列表視圖和您的按鈕的相對佈局。設置它們的佈局權重屬性,以便它們佔據屏幕。例如,一個對象上的佈局權重1和另一個上的7的佈局權重使得一個佔據屏幕的7/8,而另一個佔據1/8。如果您需要能夠看到更多列表視圖,請將其放在滾動視圖中。