2012-07-02 41 views
0

我在創建對話框的佈局時遇到困難我想要顯示帶有滾動視圖的對話框,但按鈕始終顯示在底部,但當滾動視圖變得太大時按下屏幕底部的按鈕。在底部有一個滾動視圖和持久按鈕的對話框

我可以得到所需的效果,如果我把父母的底部的按鈕對齊爲true,但如果scrollview有非常少的內容會有一個很大的空白對話框。

這裏是我目前有

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

    <ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

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

     <TextView 
      android:id="@+id/staCalCompany" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" 
      android:layout_marginLeft="15dp" 
      android:layout_marginTop="30dp" 
      android:text="Company Name" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="#ff2525" 
      android:textSize="25sp" /> 

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

      <TextView 
       android:id="@+id/staCalStart" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="15dp" 
       android:text="Start:" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#ff2525" /> 

      <TextView 
       android:id="@+id/staCalStartDisp" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="Start Time" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayout2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" > 

      <TextView 
       android:id="@+id/staCalEnd" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="15dp" 
       android:text="End:" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textColor="#ff2525" /> 

      <TextView 
       android:id="@+id/staCalEndDisp" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="10dp" 
       android:text="End Time" 
       android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </LinearLayout> 

     <TextView 
      android:id="@+id/staCalSubDisp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="10dp" 
      android:layout_marginLeft="15dp" 
      android:text="Name" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textColor="#ff2525" /> 

     <TextView 
      android:id="@+id/staCalDesc" 
      android:layout_width="285dp" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="20dp" 
      android:layout_marginLeft="15dp" 
      android:text="Description" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
     </LinearLayout> 
     </ScrollView> 

<RelativeLayout 
      android:id="@+id/linearLayout3" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:layout_gravity="bottom|center_horizontal" 
      android:gravity="center_horizontal" 
      android:layout_below="@+id/scrollView1"> 

      <ImageButton 
       android:id="@+id/calIconSync" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginLeft="20dp" 
       android:background="@drawable/calendar_plus" /> 

      <ImageButton 
       android:id="@+id/btnStaCalClose" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_alignParentRight="true" 
       android:layout_marginRight="20dp" 
       android:background="@drawable/closepopup" /> 
     </RelativeLayout> 

試圖讓它在風景和肖像模式顯示正確,但是當一個作品,其他沒有。

有關如何去做這件事的任何建議?

回答

0

在這些情況下,我只是在下面創建一些其他不可見的虛擬按鈕,並對齊這些以使我的「真實」按鈕正確定位。

如果將虛擬按鈕從屏幕上推下來,那麼真正的按鈕就在它們上面。 如果屏幕上的東西很少,虛擬按鈕位於底部,「真實」按鈕位於中間的某個位置。

使寬度=「1dp」和高度的「不可見」按鈕儘可能多。但讓它們在ANdroid意義上可見

編輯: 您可以創建一個relativeview,它的底部對齊列表視圖的底部併爲其指定一個maxHeight。將您的按鈕在這個相對視圖下對齊。當列表視圖很小時,如果你的列表視圖很長,相對視圖超過了maxHeight,並確保它仍然在屏幕上,所以你的按鈕將會在maxHeight下面。確保relativeView的maxHeight在按鈕的屏幕底部留出足夠的空間。

要調整maxHeight所以給人們留下足夠的空間,任何屏幕尺寸,你可以相應地使用該工具來獲取設備的屏幕尺寸和調整maxHight到screenHeight按鈕:幫助

Display display = getWindowManager().getDefaultDisplay(); 
Point size = new Point(); 
display.getSize(size); 
int screenHheight = size.y; 

希望也在你的情況...

+0

好,但如果scrollview變得足夠大,真正的按鈕也可能會超出正確的看法? – tyczj

+0

沒有爲我工作 – Genry

相關問題