2013-08-26 133 views
6

嗨我已經創建了一個包含2個按鈕,一個單選按鈕和一個圖形視圖的RelativeLayout。將RelativeLayout分爲兩部分

我想現在在圖中顯示兩個不同的數據。

如何將RelativeLayout分成兩部分?

這是我現在的XML代碼:

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

    <Button 
     android:id="@+id/BtnStart" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:text="SlaveEnable" /> 

    <Button 
     android:id="@+id/BtnStop" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:layout_toRightOf="@id/BtnStart" 
     android:text="SlaveDisable" /> 

    <RadioButton 
     android:id="@+id/BtnSaveFile" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_toRightOf="@id/BtnStop" 
     android:text="SaveFile" /> 

    <helog.diwesh.NugaBest.GraphView 
     android:id="@+id/gview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@id/BtnStart" 
     android:layout_alignParentRight="true" /> 

</RelativeLayout> 
+0

我沒有在這裏得到問題嗎?你到底想做什麼?你是否想要在屏幕上添加兩個圖表,都佔用相同的空間?或者您可以上傳顯示所需佈局的樣本圖紙。 – Sagar

+0

是的,我現在的佈局是一個相對佈局,圖形視圖顯示波形的ECG信號。我現在想把這張圖分成兩半,另一半顯示呼吸信號。底部有三個按鈕,應該放在同一個地方 –

回答

2

試試這個佈局。如果不完美,這應該會有一些改變。這將添加兩個圖。

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

    <Button 
     android:id="@+id/BtnStart" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:text="SlaveEnable" /> 

    <Button 
     android:id="@+id/BtnStop" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:layout_toRightOf="@id/BtnStart" 
     android:text="SlaveDisable" /> 

    <RadioButton 
     android:id="@+id/BtnSaveFile" 
     android:layout_width="100dip" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_toRightOf="@id/BtnStop" 
     android:text="SaveFile" /> 

<LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
      android:layout_above="@id/BtnStart" 
      android:layout_alignParentRight="true" 
     android:orientation="vertical" 
    android:weightSum="2" > 

    <helog.diwesh.NugaBest.GraphView 
       android:id="@+id/gview1" 
       android:layout_height="0dp" 
       android:layout_width="match_parent" 
     android:layout_weight="1" /> 

    <helog.diwesh.NugaBest.GraphView 
       android:id="@+id/gview2" 
       android:layout_height="0dp" 
       android:layout_width="match_parent" 
     android:layout_weight="1" /> 

</LinearLayout> 

</RelativeLayout> 
+0

感謝類似的東西。但第一個盧布是這兩個圖形視圖像垂直,但我需要水平像屏幕分爲兩個。而且這兩張圖看起來都完全相同。有像第一個圖上的值,但我想在畫布上添加其他內容。例如:我的Graphview由畫布上的HR和溫度組成,現在我想將呼吸細節粘貼到畫布上。 –

+0

@RahulSharma:可以繪製所需佈局的簡單草圖並上傳?它會更容易理解。 – Sagar

+0

我知道@sagar,但不幸的是我沒有足夠的聲望點來粘貼screenhot,因爲我是新的.......但讓我試着在文本中顯示一些東西----------- ----------------------------------------------- graphview1:溫度-------------------------------------------------- ------------- graphview2:呼吸---------------------------------- ---------------------------- 3按鈕 –

0

這應該工作。我刪除RelativeLayoutLinearLayout爲使用layout_weight

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

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight=".50" > 

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

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

     <RadioButton 
      android:id="@+id/BtnSaveFile" 
      android:layout_width="100dip" 
      android:layout_height="wrap_content" 
      android:text="SaveFile" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight=".50" > 

     <helog.diwesh.NugaBest.GraphView 
      android:id="@+id/gview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" /> 
    </LinearLayout> 

</LinearLayout> 
+0

感謝您的及時回覆@葉琳昂....但是當我粘貼代碼並在圖形佈局中看到時。我看不到變化。 –

+0

對不起。我已經糾正了答案。 –

+0

嗨,謝謝我收到以下錯誤:根元素後面的文檔中的標記必須格式良好。再次修復 –

14

所以,對於這一點,最好的辦法我發現(這感覺就像一個黑客總額,但就像一個魅力)就是具有零尺寸顯示對齊佈局的中心,然後將左半部分與該視圖的左側對齊,將該右側的右半部分與該視圖對齊。例如:

<?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" > 

    <View 
     android:id="@+id/anchor" 
     android:layout_width="0dp" 
     android:layout_height="0dp" 
     android:layout_centerInParent="true" /> 

    <Button 
     android:id="@+id/left_side" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/anchor" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:text="Left Side" /> 

    <Button 
     android:id="@+id/right_side" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/anchor" 
     android:layout_alignParentBottom="true" 
     android:layout_marginTop="5dip" 
     android:text="Right Side" /> 

</RelativeLayout> 
+0

嗨,謝謝我試過這個,但它給了我以下錯誤:錯誤:錯誤:字符串類型不允許('layout_toRightOf'值'錨')。 –

+1

固定。只是忘記了ID,但這是你應該能夠檢查的常見問題。 – kcoppock

+0

正是我想要的! :) –

5

使用的LinearLayout,而不是RelativeLayout.LinearLayout讓你想要使用的LinearLayout的layout_weight財產你把你的屏幕在準確二段垂直或水平。

使用layout_weight可以指定多個視圖之間的大小比例。例如。你有一個MapView和一個表格,它應該向地圖顯示一些額外的信息。地圖應該使用3/4的屏幕,桌子應該使用1/4的屏幕。然後,將地圖的layout_weight設置爲3,將table的layout_weight設置爲1.

編寫您的代碼,如下所示,它將屏幕分爲兩部分。

<LinearLayout 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     android:weightSum="2" 
     android:orientation="vertical"> 
    <LinearLayout 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      android:layout_weight="1"> 
    </LinearLayout> 
    <LinearLayout 
      android:layout_height="match_parent" 
      android:layout_width="match_parent" 
      android:layout_weight="1"> 
    <LinearLayout> 

在代碼安卓方向是,如果你使用垂直指定orienttation那麼它會垂直arrage它的孩子,如果你指定水平那麼它將水平排列其子。

+0

@kcoppock解決方案更好的情況下,如果需要列表性能。 – CoDe