在android中为RTL和LTR语言环境设计聊天气泡

时间:2016-05-09 17:12:06

标签: android xml textview right-to-left

我正在尝试使用Android的“Actor”开源Messenger应用程序,但它有一个显示RTL语言的聊天气泡的错误。显示英文文本和RTL语言文本的气泡here

我希望它像this一样,就像“Whatsapp”这样的信使。

这是气泡视图的xml文件:

<im.actor.sdk.controllers.conversation.view.BubbleContainer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true">

<im.actor.sdk.controllers.conversation.view.BubbleTextContainer
    android:id="@+id/fl_bubble"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:duplicateParentState="true">

    <TextView
        android:id="@+id/tv_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="top|left"
        android:includeFontPadding="false"
        android:textSize="15sp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|right"
        android:layout_marginBottom="-4dp"
        android:layout_marginRight="-4dp"
        android:baselineAligned="false"
        android:gravity="center_vertical"
        android:paddingLeft="4dp">

        <TextView
            android:id="@+id/tv_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:includeFontPadding="false"
            android:textSize="13sp" />

        <im.actor.sdk.view.TintImageView
            android:id="@+id/stateIcon"
            android:layout_width="16dp"
            android:layout_height="9dp"
            android:layout_marginLeft="2dp" />
    </LinearLayout>

</im.actor.sdk.controllers.conversation.view.BubbleTextContainer>

我尝试将“左”和“右”重力参数更改为“开始”和“结束”,但它不起作用。

我该如何更改此布局文件?

2 个答案:

答案 0 :(得分:2)

这些气泡测量在&#34; BubbleTextContainer&#34;类。 你应该在那里做一些改变。看到代码,我猜你会明白的。更具体地说, onMeasure 方法中有 fullContentH fullContentW 变量。根据您的需要改变它们。

答案 1 :(得分:1)

确保将清单中的应用程序标记的rtlSupport设置为true。