我在布局xml文件中有一个布局。我有固定宽度110dp。在布局中,我有一个固定宽度为100dp的TextView。
当我使用LayoutInflater为视图充气并将其添加到LinearLayout中时,TextView及其父亲RelativeLayout会忽略设置的宽度并延伸到文本的大小。我希望文本以指定的宽度换行并获取所需的高度。
我试图在通胀后将视图的宽度强制转换(将dps转换为pxs),但仍然没有。
有什么建议吗?
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="110dp"
android:layout_height="match_parent"
android:padding="1dp" >
<RelativeLayout
android:layout_centerInParent="true"
android:id="@+id/info_layout"
android:layout_width="108dp"
android:layout_height="match_parent"
android:layout_marginLeft="2dp"
android:background="@drawable/rounded_corners_grey_3">
<ImageView
android:contentDescription="@string/image"
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_centerInParent="true"/>
<ImageView
android:contentDescription="@string/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/image_overlay"
android:layout_centerInParent="true"/>
<LinearLayout
android:id="@+id/detailsLayout"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="left"
android:layout_margin="3dp"
android:layout_alignParentLeft="true"
android:layout_alignParentBottom="true"
>
<TextView
android:id="@+id/name"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:textSize="12sp"
android:gravity="center"
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"
/>
<TextView
android:id="@+id/details"
android:layout_width="100dp"
android:layout_height="wrap_content"
android:textColor="@color/bethere_green"
android:textSize="12sp"
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="100"
android:scrollHorizontally="false"/>
</LinearLayout>
<ImageView
android:contentDescription="@string/image"
android:id="@+id/noPhotos"
android:layout_width="55dp"
android:layout_height="38dp"
android:src="@drawable/photos_icon"
android:layout_centerInParent="true"/>
</RelativeLayout>
</RelativeLayout>
答案 0 :(得分:3)
我的猜测是你正在这样做:
inflater.inflate(R.layout.textview, null, false);
而不是:
inflater.inflate(R.layout.textview, parent, false);
如果使用后者,TextView将不会丢失其LayoutParams。 如果不是这种情况,您可以编辑您的问题以包含代码(XML和通胀代码),这样我们就可以看到您是如何尝试这样做的。