首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用最大宽度的wrap_content?

如何使用最大宽度的wrap_content?
EN

Stack Overflow用户
提问于 2015-08-16 06:29:46
回答 11查看 35.8K关注 0票数 32

我试图布局一个视图,应该包装它的内容,但它不应该超过100 it小于它的父宽度。我如何使用RelativeLayout或其他布局来做到这一点?我现在所拥有的,总是会使视图100 so比它的父视图少,这样就有了另一个视图的空间。

这张照片就是我所拥有的一个例子:

正如你所看到的,文本没有填满整个盒子,所以它可能更小。但是,它不应该比它的父消息少100 so,这样消息发送时就有空间了。

这是我的布局。

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:clipChildren="false"
    android:orientation="vertical"
    android:paddingBottom="10dp"
    android:paddingRight="@dimen/horizontalMargin"
    android:paddingTop="10dp">


    <TextView
        android:id="@+id/message_holder"
        android:layout_toLeftOf="@id/blank"
        android:layout_alignParentLeft="true"
        android:layout_marginLeft="@dimen/horizontalMargin"
        android:background="@drawable/message_corners"
        style="@style/white_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="alsdkjf; alsdkf" />

    <RelativeLayout
        android:id="@+id/blank"
        android:layout_width="wrap_content"
        android:layout_height="1dp"
        android:layout_alignParentRight="true"
        android:minWidth="100dp">

    </RelativeLayout>

    <TextView
        android:minWidth="100dp"
        android:id="@+id/time"
        style="@style/gray_text"
        android:layout_toRightOf="@id/message_holder"
        android:paddingLeft="10dp"
        android:text="Yesterday,\n11:30 PM" />


    <RelativeLayout
        android:layout_width="40dp"
        android:layout_height="40dp"
        android:layout_alignBottom="@id/message_holder"
        android:layout_alignParentLeft="true"
        android:background="@drawable/triangle" />

</RelativeLayout>

我尝试在消息框右侧的空白视图上使用"minWidth“属性来提供间隔,但是它不会调整大小以变大(这会使消息框更小)。如果我没有空视图,只需将时间TextView放在消息框的右侧,那么当消息框展开时,TextView将不可见。

更新:

这是我的"message_corners.xml":

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">


    <solid
        android:color="@color/green" >
    </solid>


    <padding
        android:left="10dp"
        android:top="10dp"
        android:right="10dp"
        android:bottom="10dp"    >
    </padding>


    <corners
        android:radius="10dp">
    </corners>

</shape>

更新2:

这就是我在一个简短的文本布局中所要寻找的:

这就是我在一个长文本布局中所要寻找的:

EN

Stack Overflow用户

发布于 2022-04-19 15:07:32

一种使用ConstraintLayout的解决方案

  • app:layout_constrainedWidth
  • layout_constraintHorizontal_bias
  • layout_constraintHorizontal_chainStyle

代码语言:javascript
运行
复制
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/edt_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sample content"
        app:layout_constrainedWidth="true"
        app:layout_constraintEnd_toStartOf="@id/button_right"
        app:layout_constraintHorizontal_bias="0"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <Button
        android:id="@+id/button_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Right Button"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toEndOf="@id/edt_left"
        app:layout_constraintTop_toTopOf="parent" />


</androidx.constraintlayout.widget.ConstraintLayout>
票数 0
EN
查看全部 11 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32032468

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档