2014-07-02 26 views
5

ve RatingBar numaralı bir LinearLayout yatay seçeneğim var. RatingBar'un her zaman doğrudan TextView'un sağında olmasını istiyorum. Ancak TextView'un daha fazla yer kalmayana kadar ihtiyaç duyduğu kadar gerilmesini istiyorum, sonra satır eklemeyi istiyorum. AncakTextView yatay olarak başka bir görünümü kapatır ve iter. LinearLayout

| TextView - RatingView ------------- | 

| TextViewTextView - RatingView ----- | 

| TextViewTextViewTextVi - RatingView | 
| ewTextViewTextView     | 

, RatingBar TextView'un menziller olarak ekran dışında itti elde tutar: Burada

metnin farklı genişlikleri gösteren, bu görünmelidir nasıl bir görsel bir sunumudur. Bu yerine yaptığı iştir:

| TextView - RatingView ------------- | 

| TextViewTextView - RatingView ----- | 

| TextViewTextViewTextViewTextViewTex | 
| tView        | 

İşte XML var: Ben görünümünde veya ikisine birden mi layout_weight ekleyerek denedim

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

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="TextViewTextViewTextViewTextViewTextViewTextViewTextView" 
     android:id="@+id/titleTextView" 
     android:textSize="15sp" 
     android:textColor="@color/blue" 
     android:layout_gravity="center_vertical" 
     android:layout_marginRight="8dp" 
     android:layout_weight="1"/> 

    <RatingBar 
     android:layout_width="106dp" 
     android:layout_height="20dp" 
     android:id="@+id/ratingBar2" 
     android:numStars="5" 
     android:rating="0" 
     style="@style/customRatingBar" 
     android:layout_gravity="center_vertical" 
     android:isIndicator="true" /> 

</LinearLayout> 

. Çalışacak hiçbir şey göremiyor gibiyim. Bunun yerine RelativeLayout kullanmalı mıyım? Bunu da işe yaramadı.

cevap

1

Bu, şaşırtıcı derecede zor bir görevdir! @zimeriljazia'nın önerdiği gibi, RatingBar sağa yapıştırarak ve TextView sargısını sola çevirmek RelativeLayout ile TextView sadece alignParentRight ve RatingBar kullanımı layout_toRightOf="@id/ratingbar" için kolaydır.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" > 

    <RatingBar 
     android:id="@+id/ratingBar1" 
     style="?android:attr/ratingBarStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true"   
     android:numStars="5" 
     android:rating="5" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/ratingBar1" 
     android:text="@string/long" /> 

</RelativeLayout> 

sadece (giriş için değil) ekran için RatingBar kullanıyorsanız o zaman TextView.setCompoundDrawables() veya kuzenlerinden birini kullanabilirsiniz. Tümünü doğru olana gönder, ancak bunun için derecelendirme resminizi programatik olarak ayarlayın. Yine de, wrap_content olmak için layout_width belirtmeniz gerekir.

+0

Detaylı cevap için teşekkürler. Sadece RelativeLayout ile gittim ve rating çubuğu doğru sıkışmış olması. Tasarımın gösterdiği değil, ama yapabileceğim en iyisi bu. Daha fazla zaman alırsam ikinci önerinizi deneyebilirim. Teşekkürler! – jproffitt

+0

Duymak güzel! Sorunuzu cevapladığımı düşünüyorsanız yanıtımı yanıt olarak işaretleyin. :) –

0

Metin görünümü için bir tane ve derecelendirme çubuğu için bir tane olmak üzere 2 adet göreli düzen eklemeyi deneyin. Ekranın sağ tarafındaki derecelendirme çubuğu düzenini hizalayın ve metin görünümü düzenini yapın: layout_toLeftOf değerlendirme çubuğu

+0

Bu iyi bir fikir, ancak sonra "RatingBar" ekranın sağında sıkışmış olurdu. TextView'in sonuna yapışmasını istiyorum. ('TextView' çok fazla uzanana kadar) – jproffitt

İlgili konular