2013-08-26 21 views
6

Merhaba 2 düğmeli bir RelativeLayout, bir radyo düğmesi ve bir grafik görüntüsü oluşturdum.Bir RelativeLayout öğesinin ikiye bölünmesi

Şimdi iki farklı veriyi grafikte göstermek istiyorum.

RelativeLayout'u iki yarıya nasıl bölerim?

Bu benim şimdiki XML kodu:

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

Burada soru sormadım? Tam olarak ne yapmak istiyorsun? Ekranda iki grafik eklemek ister, hem eşit alan ister misiniz? veya istediğiniz düzeni gösteren örnek çizim yükleyebilirsiniz. – Sagar

+0

Evet, mevcut düzenim dalga biçiminde EKG sinyallerini gösteren bir grafik görünümüne sahip göreli bir düzendir. Şimdi bu grafiği yarıya bölmek istiyorum ve diğer yarısında solunum sinyallerini gösteriyorum. Aynı yerde orada olması gereken altta üç düğme var. –

cevap

2

Bu düzeni deneyin. Bu mükemmel değilse bazı değişiklikler ile çalışmalıdır. Bu iki grafik ekleyecektir.

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

Benzer bir şey için teşekkürler. Fakat ilk ruble, iki grafik görünümünün dikey bir şekilde olduğu gibi, ikiye bölünmüş yatay ekrana ihtiyacım var. Ayrıca, her iki grafik de birbirinin kopyalarını tam olarak gösteriyor. İlk grafikte değerler gibi bir şey var ama tuval üzerine başka bir şey koymak istiyorum. örneğin: benim grafik görüşüm, tuvalde HR ve sıcaklıktan oluşuyordu, şimdi Solunum detaylarını tuval üzerine yapıştırmak istiyorum. –

+0

@RahulSharma: İstediğiniz mizanpajın basit taslağını çizebilir ve yükleyebilir misiniz? Anlamak daha kolay olacak. – Sagar

+0

Biliyorum @sagar ama ne yazık ki yeni bir ekran görüntüsü yapıştırmak için yeterince itibar puanım yok ....... Ama metinde bir şey göstermeye çalışmama izin ver ----------- ----------------------------------------------- graphview1: sıcaklık -------------------------------------------------- ------------- graphview2: solunum ---------------------------------- ---------------------------- 3 button –

0

Bu çalışması gerekir. RelativeLayout'u layout_weight kullanmak için LinearLayout ile kaldırdım.

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

Hızlı cevap @ Ye Lin Aung için teşekkürler .... Ama kodunuzu yapıştırdığımda ve grafik düzende gördüğümde. Hiçbir değişiklik görmüyorum. –

+0

Üzgünüm. Cevabı düzelttim. –

+0

Merhaba teşekkürler şu hatayı aldım: Kök elemanını takip eden belgede işaretleme iyi biçimlendirilmiş olmalıdır. –

14

Yani, bunun için en iyi yolu o zaman, düzen merkezine hizalanmış bir sıfır boyutlu görünümü olması (toplam kesmek gibi hissediyor, ama bir cazibe gibi çalışır olan) olduğu tespit ettik bu Görünümün sol yarısını sola hizalayın, bu Görünümün sağ yarısını hizalayın. Örneğin: RelativeLayout.LinearLayout Eğer LinearLayout ait layout_weight özelliğini kullanarak istediğiniz gibi dikey veya yatay tam iki kısmında ekran bölmek sağlar yerine

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

Merhaba teşekkürler Ben bunu denedim ama bana şu hatayı verdi: hata: Hata: Dize türleri izin verilmiyor ('bağlantı' değeri 'ile' layout_toRightOf '). –

+1

Sabit. Sadece kimliği unuttum, ama kontrol edebilmek için sıkça rastlanmanız gerekiyor. – kcoppock

+0

sadece ne istedim! :) –

5

Kullanım LinearLayout.

layout_weight ile çoklu görünümler arasında bir boyut oranı belirleyebilirsiniz. Örneğin. Haritaya bazı ek bilgiler göstermesi gereken bir MapView ve bir tablo var. Harita ekranın 3/4'ünü kullanmalı ve tablo ekranın 1/4'ünü kullanmalıdır. Ardından haritanın layout_weight değerini 3 ve tablonun layout_weight değerini 1 olarak ayarlayacaksınız.

Aşağıdaki gibi kodunuzu ekranınızı iki kısma bölen şekilde yazınız. Kod android yılında

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

: yönelimi dikey kullanırsanız o zaman dikey olarak onun çocuğu arrage olacak ve yatay belirtirseniz o zaman yatay onun çocuğu düzenleyecektir orienttation belirtmek olduğunu.

+0

Kcoppock çözümü, liste performansına ihtiyaç duyulduğunda daha iyi çalışır. – CoDe

İlgili konular