我有一个横向LinearLayout
,包含两个项目:TextView
和RatingBar
。我希望RatingBar
始终直接位于TextView
的右侧。但我希望TextView
尽可能多地延伸,直到没有空间,然后我希望它添加线条。
以下是它应该如何显示的直观表示,显示不同宽度的文本:
| TextView - RatingView ------------- |
| TextViewTextView - RatingView ----- |
| TextViewTextViewTextVi - RatingView |
| ewTextViewTextView |
然而,随着TextView的延伸,RatingBar
不断被推离屏幕。这就是它的作用:
| TextView - RatingView ------------- |
| TextViewTextView - RatingView ----- |
| TextViewTextViewTextViewTextViewTex |
| tView |
这是XML:
<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>
我尝试将layout_weight
添加到任一视图或两者都添加。似乎无法获得任何工作。我应该使用RelativeLayout
吗?我也无法做到这一点。
答案 0 :(得分:1)
这是一个非常困难的任务!正如@zimeriljazia所建议的那样,对于RatingBar
TextView
RelativeLayout
,TextView
向右移动并且alignParentRight
左侧包裹layout_toRightOf="@id/ratingbar"
很容易并且对于RatingBar使用<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>
。
RatingBar
如果您只是使用TextView.setCompoundDrawables()
进行显示(而不是输入),那么您可以使用layout_width
或其中一个表兄弟。除了正确之外的所有人都发送null,并为此设置您的评级图像。但是,您需要将wrap_content
指定为{{1}}。
答案 1 :(得分:0)
尝试为textview添加一个相对布局,为ratingbar添加一个相对布局。 将评级栏布局对齐到屏幕右侧,然后制作textview布局android:layout_toLeftOf评级栏