Ek*_*ps 5 android android-layout
所以,想法是这样的:我有两个TextViews
,第一个可以扩展它想要的任何东西,第二个总是 5 个字符(时间)。问题在于第一个TextView
可以轻松地将第二个推出屏幕。
所以,我需要的是诸如 adjust 之类的东西LinearLayout
,或者如果它不适合父级,它可能GridLayout
会TextView
在某种第二行上移动第二。
例如,您可以在 Viber 和 WhatsApp 中查看消息气泡。感谢您的任何建议。
这是我现在拥有的 XML(仅消息部分)
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/messageBox"
android:layout_gravity="center_vertical"
android:gravity="center_vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/black"
android:text='@{mess.message}'/>
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center_vertical|end"
android:gravity="center_vertical|end"
android:paddingLeft="8dp"
android:textSize="12sp"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
android:text='@{Utils.parseMillsToHoursAndMins(mess.date)}'/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
所以我将 layout_weight 添加到 first TextView
,这有助于解决我的第一个问题,但现在我有了新的问题。这两个TextView
s in LinearLayout
which is in another LinearLayout
with another TextView
。父级的LinearLayout
宽度设置为 wrap_content,因此如果 topTextView
大于 2 TextView
s,它将导致子级LinearLayout
小于它的父级,并且第二个TextView
(从那 2 个开始)不会在父级的末尾。但是当孩子LinearLayout
更大时,一切似乎都可以。我知道这很复杂,所以这是 XML
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="0dp"
android:id="@+id/contentPanel"
app:bringToFront="@{true}"
android:orientation="vertical"
android:background="@{(mess.isMine?@drawable/chat_bubble_right:@drawable/chat_bubble_left)}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text='@{!mess.authorRole.equals("Client")?(mess.authorRole + " - " + mess.author):mess.author}'
android:textColor='@{mess.authorRole.equals("Lawyer")?@color/colorPrimary:mess.authorRole.equals("Admin")?@color/red:@color/green}'
android:textSize="12sp"
android:id="@+id/author"
android:fontFamily="sans-serif-medium"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"/>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/messageBox">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textSize="14sp"
android:layout_gravity="center_vertical"
android:gravity="center_vertical"
android:layout_weight="0.7"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Medium"
android:textColor="@color/black"
android:text='@{mess.message}'/>
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:textSize="12sp"
android:gravity="bottom|end"
android:textAppearance="@style/Base.TextAppearance.AppCompat.Small"
app:checkFit="@{false}"
android:text='@{Utils.parseMillsToHoursAndMins(mess.date)}'/>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我不确定这是否会对您有帮助,但是:使用:https://github.com/ApmeM/android-flowlayout
<org.apmem.tools.layouts.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
</org.apmem.tools.layouts.FlowLayout>
Run Code Online (Sandbox Code Playgroud)
在 FlowLayout 内,您可以放置视图,如果不适合,它将自动移动到下一行。
归档时间: |
|
查看次数: |
4156 次 |
最近记录: |