【发布时间】:2015-12-20 03:59:30
【问题描述】:
我正在尝试将一些 ListView 项目向右对齐,但它们不会从左侧移动。重力和 layout_gravity 属性似乎不起作用。
此代码还将布局与 XML 代码中的右侧对齐,但不会在运行时填充 ListView。
这是我正在使用的 XML,它也使用了 9 个补丁图像作为 LinearLayout 的背景:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minHeight="0dp"
android:background="@drawable/my_9Patch_image"
android:id="@+id/contentLayout"
android:orientation="horizontal"
android:layout_gravity="right"
android:gravity="right"
>
<TextView
android:layout_width="wrap_content"
android:maxWidth="330dp"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="right"
android:textColor="#e5e5e5"
android:minHeight="0dp"
android:singleLine="false"
android:textSize="16dp">
</TextView>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:textColor="#e5e5e5"
android:minHeight="0dp"
android:textSize="10dp"
android:layout_gravity="left|bottom"
android:gravity="left|bottom"
/>
</LinearLayout>
我还尝试使用以下方法在适配器的 getView 方法中设置参数:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.RIGHT;
mLinearLayout.setLayoutParams(params);
提前感谢您的帮助。
【问题讨论】:
-
你能试着描述一下你想要完成的事情吗?
-
感谢您的回复。我正在构建一个聊天应用程序,对于传入的消息,消息在左侧,发送的消息在右侧。每个消息布局都包含一个消息和时间戳。我使用两种不同的 XML 布局,并在适配器的 getView 方法中扩展适当的布局(传入或传出消息布局)。谢谢
-
不,我问的是你想看的布局?你想在左边有一个 TextView 和一个向右对齐。这是真的吗?
-
是的,我想要一个 LinearLayout 作为聊天气泡的形状,然后 TextView 中的消息文本在气泡中从左到右,对于传出消息,要有包含 TextView时间戳位于左下角。
-
你知道相对布局吗?
标签: android listview alignment android-linearlayout nine-patch