【问题标题】:text alignment - Android GravityFlags.Right cutting off first character of each line文本对齐 - Android GravityFlags.Right 切断每行的第一个字符
【发布时间】:2021-02-28 18:40:38
【问题描述】:

我正在开发一个包含 RTL 和 LTR 语言的项目,并且目前正在修改布局以使控件与 RTL 语言兼容,这通常意味着需要颠倒并排的文本/控件范例。为了将某个TextView中的文本向右对齐,我使用GravityFlags.Right,但这会导致每行文本的第一个字符被截断。我尝试了许多不同的GravityFlags 组合来让它工作,但没有骰子。在翻译作品的开头放置一个不间断的空格,但仅限于第一行。而且不可能知道每条线会在哪里中断。请参阅下面的示例...

使用GravityFlags.Center控制文本:

对比 使用GravityFlags.Right进行文本控制:

我曾尝试删除控件外部的边距,这只是将控件和文本推到屏幕边缘,结果是一样的。在第二张图片中可以清楚地看到被剪裁到右侧的文本。

感谢您的帮助。

【问题讨论】:

  • 您是否尝试在包含文本的布局上使用填充?
  • @PrinceAli - 我做到了。这实际上将文本元素向内向左移动,但仍然保留了截止问题。
  • 你能分享这个布局的代码吗?

标签: android html layout xamarin.android alignment


【解决方案1】:

如果要支持LTRRTL,最好使用start/end而不是left/right。你可以试试看,更多信息可以参考here

另外,不要忘记在AndroidManifest.xml中添加android:supportsRtl

<?xml version="1.0" encoding="utf-8"?>
<manifest ... >
    <uses-sdk android:minSdkVersion="17" ... />
    <application ... android:supportsRtl="true">
    </application>
</manifest>

android:minSdkVersion 应该高于17

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-25
    • 2017-01-10
    • 1970-01-01
    • 2011-01-08
    • 2015-03-01
    • 1970-01-01
    相关资源
    最近更新 更多