我有一个TextView,其宽度不应超过它上面的ImageView。图像和文本都是从服务器下载的,我不知道它们的尺寸(也不能做出假设)。我通过逻辑使用this SO post.
来包装文本内容这是我的布局XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentLL"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<LinearLayout android:orientation="vertical"
android:id="@+id/LL1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/image1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:width="0dp"
android:text="This is a string whose width may or may not be more than the image downloaded" />
</LinearLayout>
<TextView android:background="@android:color/holo_red_dark"
android:id="@+id/text2"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="Second Text"/>
</LinearLayout>
使用此代码,结尾处的TextView(text2)甚至不显示。这个问题有两个解决方案:
我会请求帮助理解:
答案 0 :(得分:1)
我认为你遇到的是设置宽度和高度但不设置布局权重的冲突,这是Linear Layouts工作方式的关键因素。如果在那里再添加一个垂直LinearLayout然后将@ id / text2移动到其中,则应该设置。您需要以下内容(显然根据您的规格修改,这只是一个快速测试)。注意我使用android:layout_weight,
<customErrors mode="Off" redirectMode="ResponseRewrite">
<error statusCode="404" redirect="/404.aspx" />
<error statusCode="500" redirect="/500.aspx"/>
</customErrors>
将屏幕垂直分成两半,如图所示,
答案 1 :(得分:0)
我必须将TextView包装在RelativeLayout中,它由LinearLayout包装。对此解决方案不满意,但这是目前唯一的方法。