Android: layout_gravity = "end" не работает при компиляции на реальном устройстве

Я пытаюсь выровнять всплывающее сообщение по правому краю экрана, и, несмотря на то, что оно отображается справа, при просмотре на устройстве оно находится слева.

<?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>

Android: layout_gravity = &quot;end&quot; не работает при компиляции на реальном устройстве

В Andriod Studio:

В моем устройстве:

Android: layout_gravity = &quot;end&quot; не работает при компиляции на реальном устройстве

Он используется для отображения сообщений на экране с помощью ListView:

<ListView
        android:id = "@+id/list_message"
        android:layout_width = "match_parent"
        android:layout_height = "match_parent"
        android:layout_above = "@+id/layout_linear"
        android:stackFromBottom = "true"
        android:divider = "@android:color/transparent"
        android:transcriptMode = "alwaysScroll"
        tools:listitem = "@layout/item_message"/>

Ниже адаптера, ответственного за заполнение списка:

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;
    }
}

вы использовали просмотр сообщений в виде списка или recyclerview?

MJM 29.05.2018 06:38

@MJM, это не RecyclerView.

fermoga 29.05.2018 06:38

@ mfgabriel92, в каком макете вы это использовали, опубликуйте и это тоже .. макет, который содержит эту отправку, изображение и все такое

Vishva Dave 29.05.2018 06:43

где вы использовали его, опубликовать родительский вид выше xml?

MJM 29.05.2018 06:55

В activity_main используется ListView.

fermoga 29.05.2018 07:09

показать код адаптера

MJM 29.05.2018 07:27

Вопрос обновлен.

fermoga 29.05.2018 07:34
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
7
654
3

Ответы 3

Попробуй это :

<?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>
<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>

Другие вопросы по теме