2015-01-07 70 views
0

爲什麼滾動視圖在按鈕後面?我希望scrollview根據設備的高度拉伸,但不能讓它工作,因爲它總是在按鈕後面。ScrollView在Android中後退按鈕

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/detail_view" 
    style="@style/DetailView"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <TextView 
      style="@style/TextView" 
      android:id="@+id/textview_message_title" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
     </TextView> 

     <TextView 
      style="@style/TextView" 
      android:id="@+id/textview_message_date" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
     </TextView> 

     <ScrollView 
      android:id="@+id/scrollview_message_text" 
      android:layout_height="wrap_content" 
      android:paddingBottom="20dip" 
      android:layout_width="fill_parent"> 
      <TextView 
       style="@style/TextView" 
       android:id="@+id/textview_message_text" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 
      </TextView> 
     </ScrollView> 

    </LinearLayout> 

    <LinearLayout style="@style/DetailView.Buttons" 
      android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <Button 
      style="@style/Button" 
      android:layout_marginTop="5dip" 
      android:id="@+id/button_view_file" 
      android:text="@string/viewfile"/> 

    </LinearLayout> 

</RelativeLayout> 
+0

不要離開Bottom Padding,我估計。順便說一下,你不能把按鈕放在ScrollView中嗎? –

+0

從發佈的代碼我不明白爲什麼'查看文件'按鈕是它在哪裏。可能是風格的東西? – njzk2

回答

1

這裏是什麼,我認爲你工作副本正在尋找

1:移動的按鈕相對佈局的頂部(加一個id) 機器人:layout_alignParentBottom =」真正的」

<LinearLayout android:id="@+id/buttons" 
       android:layout_alignParentBottom="true" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"> 

     <Button 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_marginTop="5dip" 
      android:id="@+id/button_view_file" 
      android:text="Button"/> 

    </LinearLayout> 

2:添加在佈局包含滾動改變寬度和高度,以匹配父 但(臨界)添加機器人:layout_above =‘@ ID /按鈕’

<LinearLayout 
     android:layout_above="@id/buttons" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     android:orientation="vertical" > 

所以把他們放在一起:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      android:id="@+id/detail_view" 
      > 


    <!-- Buttons at the top of layout but aligned to the bottom --> 
    <LinearLayout android:id="@+id/buttons" 
       android:layout_alignParentBottom="true" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:orientation="vertical"> 

    <Button 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:layout_marginTop="5dip" 
      android:id="@+id/button_view_file" 
      android:text="Button"/> 

</LinearLayout> 


<!-- Linear layout to fill screen, but assigned to layout above the buttons --> 
<LinearLayout 
     android:layout_above="@id/buttons" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@android:color/darker_gray" 
     android:gravity="center" 
     android:orientation="vertical" > 

    <TextView 
      android:id="@+id/textview_message_title" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
    </TextView> 

    <TextView 
      android:id="@+id/textview_message_date" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
    </TextView> 

    <ScrollView 
      android:id="@+id/scrollview_message_text" 
      android:layout_height="wrap_content" 
      android:paddingBottom="20dip" 
      android:layout_width="fill_parent"> 
     <TextView 
       android:id="@+id/textview_message_text" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 
     </TextView> 
    </ScrollView> 

</LinearLayout> 



</RelativeLayout> 

我刪除了風格,所以我可以看到它在佈局中的確認,然後再發布這個工作。希望這可以幫助。

相對佈局允許您將元素疊加在彼此之上。所以,如果這不是你正在尋找的東西,你需要利用toLeft,toRight,above,below指令將佈局推到正確的位置。

+0

哇,工作。我認爲這可以在任何顯示器上工作。再次感謝! –

+0

很高興幫助,它應該工作正常。 RelativeLayout比嵌套LinearLayouts更靈活。它只是需要一點時間來適應它。 – mjstam

0

爲什麼要滾動視圖這裏後面的按鈕?

因爲是第一次降臨在你的佈局,ReletiveLayoutFrameLayout可以用來提供Z排序,所以後來進來具有較高的Z值佈局如此這般up.Add android:layout_below = "@id/scrollview_message_text"要貴上每一個孩子線性佈局或根據這種有關重要性的特徵來排列您的觀點。

1

發生這種情況是因爲您使用Relative佈局作爲根佈局。因此,無論佈局被放置在同一個地方,但按鍵佈局聲明滾動視圖後,所以它是滾動視圖 如果你滾動視圖

所以你應該把它定義爲顯示之前定義的按鈕會發生相反的如上圖所示下面來實現你想要的。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/detail_view" 
    style="@style/DetailView"> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:layout_above="@id/layout_bottom" 
     android:orientation="vertical" > 

     <TextView 
      style="@style/TextView" 
      android:id="@+id/textview_message_title" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
     </TextView> 

     <TextView 
      style="@style/TextView" 
      android:id="@+id/textview_message_date" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center"> 
     </TextView> 

     <ScrollView 
      android:id="@+id/scrollview_message_text" 
      android:layout_height="wrap_content" 
      android:paddingBottom="20dip" 
      android:layout_width="fill_parent"> 
      <TextView 
       style="@style/TextView" 
       android:id="@+id/textview_message_text" 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content"> 
      </TextView> 
     </ScrollView> 

    </LinearLayout> 

    <LinearLayout 
      android:id="@+id/layout_bottom" 
     style="@style/DetailView.Buttons" 
      android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 

     <Button 
      style="@style/Button" 
      android:layout_marginTop="5dip" 
      android:id="@+id/button_view_file" 
      android:text="@string/viewfile"/> 

    </LinearLayout> 

</RelativeLayout> 

,或者你可以嘗試使用的LinearLayout作爲根查看和設置

layout_height = "0dp" 
layout_weight = "1" 

佈局採用這兩種方式都會使按鈕堅守的底部包含滾動視圖

佈局和頂部佈局將獲得所有剩餘的高度。

好運