LinearLayout int LinearLayout imageview + Icon(左+右)
我尝试向右对齐,但我遇到了很多问题。
当向左对齐时,一切正常,但是当我尝试右对齐时,图像位于左侧,因为它位于布局内,我不知道如何更改布局。 是聊天。
LayoutParams lp = (LayoutParams) holder.text.getLayoutParams ();
LayoutParams lp2 = (LayoutParams) holder.text2.getLayoutParams ();
LayoutParams lp3 = (LayoutParams) holder.image.getLayoutParams ();
左对齐(工作)
lp.gravity = Gravity.LEFT;
lp2.gravity = Gravity.LEFT;
lp3.gravity = Gravity.LEFT;
对齐RIGTH(不工作)
lp.gravity = Gravity.RIGHT;
lp2.gravity = Gravity.RIGHT;
lp3.gravity = Gravity.RIGHT;
不会从左侧位置移动:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/chat_layout1">
<ImageView
android:id="@+id/image"
android:layout_width="64dp"
android:layout_height="64dp"
android:src="@drawable/user" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/chat_layout2">
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_margin="5sp"
android:background="@drawable/right_message_bg"
android:text="Medium Text"
android:textSize="20sp"/>
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="-" />
</LinearLayout>
</LinearLayout>
如何从其他布局更改图像? chat_layout2?
____
| | text (work)
|___|
____
| | text (not work right)
|___|
答案 0 :(得分:0)
将chat_layout2的xml宽度布局参数更改为wrap_content。
您的图片布局仅可见,因为它首先列出。您的文本视图布局尽可能大。此外,图像环绕布局是多余的,因为ImageView仍然具有LinearLayoutParam参数。
并将(chat_layout1&amp; chat_layout2)的父级(parent_chat_layout)的重力设置为右 - 它会改变其子项的定位方式。并将其定位设置为水平。
使用开发者选项的活动&gt;显示布局边界:
<LinearLayout ...>
<LinearLayout android:id="@+id/parent_chat_layout"
...
android:orientation="horizontal">
<ImageView
android:id="@+id/image" ... />
<LinearLayout
android:id="@+id/chat_layout2"
android:layout_width="match_parent" //IT SHOULD BE WRAP_CONTENT
...>
<TextView
android:id="@+id/text"
.../>
<TextView
android:id="@+id/text2"
..."/>
</LinearLayout>
</LinearLayout>
<LinearLayout android:id="@+id/parent_chat_layout2"
...
android:gravity="right"> //THIS SHOULD BE CHANGED, NOT CHILDREN'S GRAVITY
<ImageView
android:id="@+id/image1".../>
<LinearLayout
android:id="@+id/chat_layout21"
android:layout_width="wrap_content" //THIS IS WHERE MAGIC HAPPENS
...>
<TextView
android:id="@+id/text1"
.../>
<TextView
android:id="@+id/text21"
.../>
</LinearLayout>
</LinearLayout>
</LinearLayout>
答案 1 :(得分:-1)
尝试使用RelativeLayout代替LinearLayout。 RelativeLayouts更容易使用......