Java android:layout_gravity=";完";在真实设备中编译时不工作
我试图将气球消息与屏幕的右/端对齐,尽管它显示在右侧,但在设备中查看时,它显示在左侧Java android:layout_gravity=";完";在真实设备中编译时不工作,java,android,alignment,layout-gravity,Java,Android,Alignment,Layout Gravity,我试图将气球消息与屏幕的右/端对齐,尽管它显示在右侧,但在设备中查看时,它显示在左侧 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="wrap_
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/activity_horizontal_margin"
android:layout_marginStart="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/chat_message_top_bottom_padding"
android:paddingBottom="@dimen/chat_message_top_bottom_padding"
android:paddingStart="@dimen/chat_message_right_left_padding"
android:paddingEnd="@dimen/chat_message_right_left_padding"
android:layout_gravity="end"
android:background="@drawable/balloon_shape_sending"
android:theme="@style/ChatMessagesMessageSending"
android:orientation="vertical">
<ImageView
android:id="@+id/img_photo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true" />
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
tools:text="Message" />
<TextView
android:id="@+id/tv_author"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
tools:text="Name" />
</LinearLayout>
下面是负责填充列表的适配器:
public class MessageAdapter extends ArrayAdapter<ChatroomMessage> {
MessageAdapter(@NonNull Context context, int resource, List<ChatroomMessage> objects) {
super(context, resource, objects);
}
@NonNull
@Override
public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
if (convertView == null) {
convertView = ((Activity) getContext()).getLayoutInflater().inflate(R.layout.item_message, parent, false);
}
ImageView imgPhoto = convertView.findViewById(R.id.img_photo);
TextView tvAuthor = convertView.findViewById(R.id.tv_author);
TextView tvMessage = convertView.findViewById(R.id.tv_message);
ChatroomMessage message = getItem(position);
if (message.getPhotoUrl() != null) {
tvMessage.setVisibility(View.GONE);
imgPhoto.setVisibility(View.VISIBLE);
Glide.with(imgPhoto.getContext()).load(message.getPhotoUrl()).into(imgPhoto);
} else {
tvMessage.setVisibility(View.VISIBLE);
imgPhoto.setVisibility(View.GONE);
tvMessage.setText(message.getText());
}
tvAuthor.setText(message.getName());
return convertView;
}
}
公共类MessageAdapter扩展了ArrayAdapter{
MessageAdapter(@NonNull上下文,int资源,列表对象){
超级(上下文、资源、对象);
}
@非空
@凌驾
公共视图getView(int位置,@Nullable视图convertView,@NonNull视图组父级){
if(convertView==null){
convertView=((活动)getContext()).GetLayoutFlater().inflate(R.layout.item_消息,父项,false);
}
ImageView imgPhoto=convertView.findViewById(R.id.img_照片);
TextView tvAuthor=convertView.findViewById(R.id.tv\u author);
text查看tvMessage=convertView.findviewbyd(R.id.tv_消息);
聊天室消息=getItem(位置);
if(message.getPhotoUrl()!=null){
tvMessage.setVisibility(View.GONE);
imgPhoto.setVisibility(View.VISIBLE);
Glide.with(imgPhoto.getContext()).load(message.getPhotoUrl()).into(imgPhoto);
}否则{
tvMessage.setVisibility(View.VISIBLE);
imgPhoto.setVisibility(View.GONE);
tvMessage.setText(message.getText());
}
tvAuthor.setText(message.getName());
返回视图;
}
}
试试这个:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingBottom="@dimen/padding_small"
android:paddingEnd="@dimen/padding_avg"
android:paddingStart="@dimen/padding_avg"
android:paddingTop="@dimen/padding_small">
<TextView
android:id="@+id/text_view_chat_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/margin_huge"
android:layout_toStartOf="@+id/text_view_user_alphabet"
android:background="@drawable/chat_rounded_rect_bg"
android:padding="@dimen/padding_small"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textColor="@color/grey_100"
tools:text="Noice man !" />
<TextView
android:id="@+id/text_view_user_alphabet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_marginStart="@dimen/margin_avg"
android:background="@drawable/circle_accent"
android:gravity="center"
android:maxEms="1"
android:textAllCaps="true"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="@color/grey_100"
android:textStyle="bold"
tools:text="a" />
</RelativeLayout>
我不知道为什么答案的示例似乎有效,但这是我的解决方案:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin"
android:orientation="vertical">
<RelativeLayout
android:layout_gravity="end"
android:background="@drawable/balloon_shape_sending"
android:theme="@style/ChatMessagesMessageSending"
android:layout_width="wrap_content"
android:padding="@dimen/padding"
android:layout_height="wrap_content">
...
</RelativeLayout>
</LinearLayout>
...
您在列表或recyclerview中使用过邮件视图吗?@MJM,您在哪个版面中使用过此页面,而不是recyclerview
@MFGABRIELE92,请也发布此页面。。包含此发送和图像以及您在上述xml上的父视图后使用它的所有内容的布局?在activity\u main
中,使用ListView
。
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="@dimen/margin"
android:orientation="vertical">
<RelativeLayout
android:layout_gravity="end"
android:background="@drawable/balloon_shape_sending"
android:theme="@style/ChatMessagesMessageSending"
android:layout_width="wrap_content"
android:padding="@dimen/padding"
android:layout_height="wrap_content">
...
</RelativeLayout>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="1dp">
<LinearLayout
android:id="@+id/chat_left_msg_layout"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
tools:ignore="RtlHardcoded"
android:visibility="gone">
<TextView
android:id="@+id/chat_left_msg_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_margin="10dp"
android:textSize="16sp"
android:textColor="@color/colorWhite"
android:background="@drawable/recevied_msg_bg"
android:visibility="gone"/>
</LinearLayout>
<LinearLayout
android:id="@+id/chat_right_msg_layout"
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end">
<TextView
android:id="@+id/chat_right_msg_text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/colorWhite"
android:layout_margin="10dp"
android:textSize="16sp"
android:background="@drawable/send_msg_bg"
android:visibility="gone"/>
</LinearLayout>
</LinearLayout>