Android 想要在另一个内部对齐linearlayout,但setGravity()不起作用
我试图以编程方式将一个线性布局与另一个线性布局对齐,但是Android 想要在另一个内部对齐linearlayout,但setGravity()不起作用,android,android-layout,Android,Android Layout,我试图以编程方式将一个线性布局与另一个线性布局对齐,但是setGravity(Gravity.RIGHT)不起作用 我知道gravity和layout\u gravity之间的区别 以下是xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_pa
setGravity(Gravity.RIGHT)
不起作用
我知道gravity
和layout\u gravity
之间的区别
以下是xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout
android:id="@+id/initial_wrapper"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:id="@+id/conversationwrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bubble_yellow"
>
<TextView
android:id="@+id/messagecontent_tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="5dip"
android:paddingLeft="10dip"
android:text="Message_content"
android:textSize="15dp" />
<TextView
android:id="@+id/timestamp_tv"
android:layout_width="50dp"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="HH:MM"
android:ems="2"
android:textSize="12dp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
但它总是碰巧在左边,即使图像是绿色的
奇怪的是如果我打字
android:gravity="right"
在初始_包装中,它在预览中工作,但在设备中不工作
我使用的是Moto G和Nexus 5,但两者都不起作用。问题可能就在这里:
android:layout\u width=“fill\u parent”
,如果你的布局填满了整个家长,你应该如何设置android:gravity=“right”
?你应该尝试使用
<LinearLayout
android:id="@+id/initial_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
而不是:
<LinearLayout
android:id="@+id/initial_wrapper"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
执行此操作
<LinearLayout
android:id="@+id/initial_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity = "left"
>
希望它有帮助不相关,您在线性布局中缺少方向标记。@Skynet在没有方向时被视为水平“重力”始终应用于内容(当您的布局最大化wrt维度(匹配父级或固定大小)时有意义),而layout_重力应用于布局(您需要包装内容或固定大小才能使其有意义).OP在分配方式上是正确的gravity@humblerookie但在这段代码中,这个内容应该填充整个家长,所以我认为他需要尝试this@nikmyers我一开始试过了,但我也读到了布局重力和重力的区别,这是重力,我想做的事情我试过了,但没有成功。改变了最初的包装r宽度来包装内容,但它在编辑器中甚至没有正确显示:/但是谢谢你!对不起,先生,我在检查我的编辑时犯了一个小错误。@JavierLunaMolinait崩溃:java.lang.ClassCastException:android.widget.AblistView$LayoutParams不能转换为android.widget.LinearLayout$LayoutParamshmm…我很糟糕..我有rolledback my edit.你说这行不行吗?先生,请在getView
initial\u wrapper.setGravity(!coment.mine?Gravity.LEFT:Gravity.RIGHT)中删除这一行
试试我目前给出的代码,将包装内容作为初始包装的宽度@JavierLunaMolinaNow它没有崩溃,但不起作用……这真让我抓狂
<LinearLayout
android:id="@+id/initial_wrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity = "left"
>
LinearLayout.LayoutParams lp = initial_wrapper.getLayoutParams();//will need to casting
lp.gravity= Gravity.RIGHT; // this is the important part
initial_wrapper.setLayoutParams(lp);