我的布局包含一个父版LinearLayout,其weightSum为100,两个子布局的版本为weights
40和60.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:id="@+id/cv_container"
android:layout_width="match_parent"
android:layout_height="150dp"
android:weightSum="100"
android:background="@android:color/white">
<RelativeLayout
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout1"
android:layout_weight="40">
<Droid.SquareImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imgPlaceholderImage"
android:layout_centerInParent="true"
android:scaleType="fitXY" />
<Droid.CustomTextView
android:text="Category"
app:customFont="Fonts/Roboto-Bold.ttf"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:color="@android:color/white"
android:id="@+id/txtCategory"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:ellipsize="end" />
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearLayout2"
android:layout_weight="60"
android:padding="10dp">
<Droid.CustomTextView
android:text=""
app:customFont="Fonts/Roboto-Bold.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:color="@android:color/black"
android:id="@+id/txtTitle" />
<Droid.CustomTextView
android:text=""
android:textSize="14sp"
app:customFont="Fonts/Roboto-Regular.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="#d5d5d5"
android:id="@+id/txtDate" />
<Droid.CustomTextView
android:text=""
app:customFont="Fonts/Roboto-Regular.ttf"
android:textSize="15sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="@android:color/black"
android:id="@+id/txtDetail"
android:maxEms="4"
android:ellipsize="end" />
</LinearLayout>
</LinearLayout>
我的第二排看起来不错,但第一排看起来很奇怪。我使用RecyclerView
。
如何让我的第一行看起来像第二行?
答案 0 :(得分:1)
尝试将0dp
宽度设为RelativeLayout
,只要您将weight
属性用于任何layout
或views
,就必须设置width
如果父级布局为height
,则设置为0dp
layout
或父级布局为orientation
布局为horizontal
,然后设置width
0dp
。
您不需要将vertical
100给予任何height
或0dp
,默认情况下会考虑weightSum
100。
答案 1 :(得分:0)
您必须为width
将0dp
的值设置为RelativeLayout
,然后权重才会生效。
在您的情况下,因为您使用了水平LinearLayout
,您必须将width
改为RelativeLayout
到0dp
:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:id="@+id/cv_container"
android:layout_width="match_parent"
android:layout_height="150dp"
android:weightSum="100"
android:background="@android:color/white">
<RelativeLayout
android:padding="10dp"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearLayout1"
android:layout_weight="40">
<Droid.SquareImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/imgPlaceholderImage"
android:layout_centerInParent="true"
android:scaleType="fitXY" />
<Droid.CustomTextView
android:text="Category"
app:customFont="Fonts/Roboto-Bold.ttf"
android:textSize="12sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:color="@android:color/white"
android:id="@+id/txtCategory"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:ellipsize="end" />
</RelativeLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="0dp"
android:layout_height="match_parent"
android:id="@+id/linearLayout2"
android:layout_weight="60"
android:padding="10dp">
<Droid.CustomTextView
android:text=""
app:customFont="Fonts/Roboto-Bold.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="16sp"
android:color="@android:color/black"
android:id="@+id/txtTitle" />
<Droid.CustomTextView
android:text=""
android:textSize="14sp"
app:customFont="Fonts/Roboto-Regular.ttf"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="#d5d5d5"
android:id="@+id/txtDate" />
<Droid.CustomTextView
android:text=""
app:customFont="Fonts/Roboto-Regular.ttf"
android:textSize="15sp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="@android:color/black"
android:id="@+id/txtDetail"
android:maxEms="4"
android:ellipsize="end" />
</LinearLayout>
要详细了解Layout_weight的工作原理,请查看this answer。
答案 2 :(得分:0)
检查此解决方案,将起作用
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cv_container"
android:layout_width="match_parent"
android:layout_height="150dp"
android:background="@android:color/white"
android:orientation="horizontal"
android:weightSum="100">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="40"
android:orientation="vertical"
android:padding="5dp">
<Droid.SquareImageView
android:id="@+id/imgPlaceholderImage"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@android:drawable/ic_menu_gallery" />
<Droid.CustomTextView
android:id="@+id/txtCategory"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:color="@android:color/white"
android:ellipsize="end"
android:text="Category"
android:textSize="12sp"
app:customFont="Fonts/Roboto-Bold.ttf" />
</LinearLayout>
<LinearLayout
android:id="@+id/linearLayout2"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="60"
android:orientation="vertical"
android:padding="5dp">
<Droid.CustomTextView
android:id="@+id/txtTitle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="@android:color/black"
android:text=""
android:textSize="16sp"
app:customFont="Fonts/Roboto-Bold.ttf" />
<Droid.CustomTextView
android:id="@+id/txtDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="#d5d5d5"
android:text=""
android:textSize="14sp"
app:customFont="Fonts/Roboto-Regular.ttf" />
<Droid.CustomTextView
android:id="@+id/txtDetail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:color="@android:color/black"
android:ellipsize="end"
android:maxEms="4"
android:text=""
android:textSize="15sp"
app:customFont="Fonts/Roboto-Regular.ttf" />
</LinearLayout>
</LinearLayout>