2013-08-26 24 views
6

Witam Stworzyłem RelativeLayout zawierający 2 przyciski, przycisk radiowy i widok wykresu.Dzielenie RelativeLayout na dwie połowy

Chcę wyświetlić teraz dwie różne dane na wykresie.

Jak podzielić RelativeLayout na dwie połówki?

To jest mój obecny kod 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

Nie dostałem tutaj pytania? Co dokładnie chcesz robić? czy chcesz dodać dwa wykresy na ekranie, zajmując równe miejsce? lub możesz przesłać przykładowy rysunek pokazujący pożądany układ. – Sagar

+0

Tak, mój obecny układ jest układem względnym z widokiem wykresu pokazującym sygnały EKG w postaci fali. Chcę teraz podzielić ten wykres na pół, a na drugiej połowie pokazać sygnały oddychania. Na dole znajdują się trzy przyciski, które powinny znajdować się w tym samym miejscu. –

Odpowiedz

2

Wypróbuj ten układ. Powinno to działać z pewnymi zmianami, jeśli nie jest doskonałe. Spowoduje to dodanie dwóch wykresów.

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

Dzięki temu coś podobnego. Ale pierwszy rubel jest taki, że dwa wykresy są jak w pionie, ale wymagam horyzontalnego ekranu podzielonego na dwa. Oba wykresy wyglądają dokładnie tak samo, jak dwie kopie. Na pierwszym wykresie jest coś podobnego, ale chcę umieścić coś na płótnie. np .: mój wykres składa się z HR i temperatury na płótnie, teraz chcę wkleić szczegóły dotyczące układu oddechowego na płótnie. –

+0

@RahulSharma: Czy można narysować prosty szkic pożądanego układu i załadować? będzie to łatwiejsze do zrozumienia. – Sagar

+0

Wiem, że @agar, ale niestety nie mam wystarczającej liczby punktów reputacji, aby wkleić ekran, ponieważ jestem nowy ....... Ale pozwól mi spróbować pokazać coś w tekście ----------- ----------------------------------------------- wykres1: temperatura -------------------------------------------------- ------------- graphview2: respiracja ---------------------------------- ---------------------------- 3 przycisk –

0

to powinno działać. Usunąłem RelativeLayout z LinearLayout za pomocą 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

Dzięki za szybką odpowiedź @ Ye Lin Aung .... Ale kiedy wkleję twój kod i zobaczę w układzie graficznym. Nie widzę zmian . –

+0

Przykro mi. Poprawiłem odpowiedź. –

+0

Witam, dziękuję Mam następujący błąd: Znacznik w dokumencie po elemencie głównym musi być dobrze sformułowany. –

14

Tak, na to najlepszym sposobem znalazłem (który czuje się jak totalny siekać, ale działa jak czar) ma mieć zero-size Widok wyrównany do środka układu, a następnie wyrównaj lewą połowę na lewo od tego widoku, wyrównując prawą połowę na prawo od tego widoku. Na przykład:

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

Cześć, dzięki, spróbowałem tego, ale spowodowało to następujący błąd: error: Błąd: typy łańcuchów niedozwolone (w 'layout_toRightOf' z wartością 'anchor'). –

+1

Naprawiono. Po prostu zapomniałem ID, ale jest to typowe, do którego powinieneś się dostać. – kcoppock

+0

właśnie tego chciałem !!! :) –

5

Zastosowanie Linearlayout zamiast RelativeLayout.LinearLayout pozwala podzielić ekran na dwie części dokładnie pionowo lub poziomo, jak chcesz przy użyciu layout_weight własność LinearLayout.

Za pomocą layout_weight można określić stosunek rozmiarów wielu widoków. Na przykład. masz MapView i tabelę, która powinna pokazać dodatkowe informacje na mapie. Mapa powinna wykorzystywać 3/4 ekranu, a stół powinien wykorzystywać 1/4 ekranu. Wtedy ustawisz układ_waga mapy na 3, a układ_waga tabeli na 1.

Napisz poniższy kod, który dzieli ekran na dwie części.

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

w kodzie android: orientacji jest określić orienttation jeśli używasz pionowy wtedy będzie arrage swoje dziecko w pozycji pionowej i poziomej, jeśli określenie to będzie zorganizować swoje dziecko poziomo.

+0

Rozwiązanie @kcoppock działa lepiej na wypadek, gdyby potrzeba wydajności listy. – CoDe