2012-07-31 179 views
1

我只是在浪費時間,因爲我不知道如何正確地做到這一點。基本上,我想有一個自定義輸入視圖,用戶可以用他/她的手指繪製他想要的任何內容,並且在其下面,我想放置2個(或更多)按鈕,這些按鈕我不想重疊自定義視圖的頂部。因爲我試圖避免硬編碼的寬度和高度,有沒有什麼辦法來指定按鈕應該包裝到他們的內容和自定義視圖應該佔據剩餘的高度?因爲我希望所有按鈕具有相同的高度,我想,他們取了一個高度爲基準應該以某種方式工作...對齊控件

這是我目前的佈局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <com.example.myapp.DrawView 
     android:id="@+id/drawView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" /> 

    <Button 
     android:id="@+id/buttonSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:text="@string/save" /> 

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

</RelativeLayout> 

它實際上是可能的實現我想要的東西,而不必以惡意的方式破解它?

回答

1

放置Buttons上面的自定義視圖:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/buttonSave" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:text="@string/save" /> 

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

    <com.example.myapp.DrawView 
     android:id="@+id/drawView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_above="@id/buttonSave" /> 

</RelativeLayout> 

如果你不能確定Buttons等於你就必須將它們包裝在另一個佈局的高度(如LinearLayout),然後將自定義View高於該包裝。一些佈局

+0

很酷的傢伙,說沒有的伎倆!如果可以的話,我會給你一個+10的! :) – 2012-07-31 13:09:19

+0

如果你想避免在DrawView @Mihai Todor之前聲明Button,你可以在'res/values/ids.xml'文件中聲明這些id。這樣,你聲明按鈕/繪製視圖的順序根本就不重要。該ID已經在佈局文件的外部存在。 – scriptocalypse 2013-11-13 19:01:25

0

廣場按鈕:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context=".MainActivity" > 

<com.example.myapp.DrawView 
    android:id="@+id/drawView" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" /> 


    <RelativeLayout android:id="@+id/button_layout" 
       ........ 
       android:layout_alignParentBottom="true" 
    > 
       .... 
       your buttons 
       ..... 
    </RelativeLayout> 
</RelativeLayout> 
+0

但是,如果我設置'android:layout_height =「match_parent」',那麼自定義視圖將會出現在按鈕下面,這正是我想要避免的。 – 2012-07-31 13:04:29