我正在尝试使布局xml适合下面的布局:
这种布局排在列表视图的一行。 问题是:缩略图需要水平放置在行的中间,而星也是,这是我的布局xml,具有最佳方法:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center_vertical"
android:id="@+id/thumbnail"
android:src="@drawable/ic_thumbnail"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="vertical"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_toLeftOf="@+id/favoriteVendor"
android:layout_toRightOf="@+id/thumbnail">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NameNameNameNameNameNameName"
android:singleLine="true"
android:ellipsize="marquee"
android:id="@+id/vendorName"
android:textSize="20dp" />
<RatingBar
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pin_point_rating"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NameNameNameNameNaNameNameNameNameNameNameNamemeNameName"
android:id="@+id/vendorAddress"
android:singleLine="true"
android:ellipsize="marquee"/>
</LinearLayout>
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/favoriteVendor"
android:adjustViewBounds="true"
android:textOn=""
android:textOff=""
android:background="@drawable/star"
android:scaleType="centerCrop"
android:layout_margin="8dp" android:layout_alignParentTop="true"
android:layout_alignParentRight="true" android:layout_alignParentEnd="true"/>
</RelativeLayout>
有谁知道怎么做?我尝试了很多组合
答案 0 :(得分:1)
我想这是一个更好的方法(这只是一个布局,可以根据需要使用填充)
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"/>
<LinearLayout
android:layout_toRightOf="@+id/photo"
android:layout_toLeftOf="@+id/tb"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"/>
<RatingBar
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pin_point_rating"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"/>
</LinearLayout>
<ToggleButton
android:id="@+id/tb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"/>
</RelativeLayout>
答案 1 :(得分:0)
试试这种方式,希望这可以帮助您解决问题,我使用LinearLayout来达到您的要求。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/thumbnail"
android:src="@drawable/ic_thumbnail"
android:scaleType="fitXY"/>
<LinearLayout
android:layout_width="0dp"
android:layout_weight="1"
android:gravity="center"
android:layout_marginLeft="5dp"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NameNameNameNameNameNameName"
android:singleLine="true"
android:ellipsize="marquee"
android:id="@+id/vendorName"
android:textSize="20dp" />
<RatingBar
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/pin_point_rating"
android:layout_marginTop="5dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NameNameNameNameNaNameNameNameNameNameNameNamemeNameName"
android:id="@+id/vendorAddress"
android:singleLine="true"
android:ellipsize="marquee"
android:layout_marginTop="5dp"/>
</LinearLayout>
<ToggleButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/favoriteVendor"
android:adjustViewBounds="true"
android:background="@drawable/star"
android:scaleType="centerCrop"
android:layout_marginLeft="5dp"/>
</LinearLayout>