如何让溢出的TextView与android一起工作:ellipsize =" start"?

时间:2014-07-21 01:12:16

标签: android textview

在我的应用中,我经常以下列布局动态更新TextView的内容:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/container_view"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingTop="@dimen/top_padding"
    android:paddingRight="@dimen/side_padding"
    android:paddingBottom="@dimen/top_padding"
    android:paddingLeft="@dimen/side_padding">

    <TextView
        android:id="@+id/breadcrumbs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/title_showcase"
        style="@style/ShowcaseBreadcrumbs"
        android:ellipsize="start"
        android:singleLine="true" />

    <it.sephiroth.android.library.widget.HListView
        android:id="@+id/item_carousel"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center"
        android:layout_marginTop="-40dp"
        android:listSelector="@android:color/transparent"
        app:hlv_dividerWidth="10dp"
        />

</LinearLayout>

LinearLayout中的填充全部为70dpHListViewHorizontalVariableListView。这是风格,但我怀疑它是否有用:

<style name="ShowcaseBreadcrumbs">
    <item name="android:textSize">32sp</item>
    <item name="android:background">@drawable/bottom_border_thin</item>
    <item name="android:textColor">@color/white</item>
    <item name="android:layout_marginBottom">10dp</item>
</style>

我使用基本TextView.setText(String)更新TextView的内容。不幸的是,当文本足够长时,TextView不会因为溢出文本在屏幕上运行而无法进行任何操作:

enter image description here

如何强制TextView显示其内容的结尾并在开始时正确地进行椭圆化?

1 个答案:

答案 0 :(得分:2)

显然我遇到了Android的省略号功能和辅助功能服务的错误。感谢Android错误跟踪器上的recent bug post,我发现LastPass辅助功能服务(扫描应用程序以查找可能的用户名/密码框以进行自动填充)是将TextView的内容跳回到开头。关闭LastPass服务解决了这个问题。

查看此屏幕录制我拍摄的错误(请注意按钮上方的TextView):https://www.youtube.com/watch?v=7VoEfx0rgys

我还使用Talkback服务对其进行了测试 - 当服务开启时,TextView再次跳转,就像在视频中一样。关闭服务并重新启动应用程序会产生预期效果。

请注意,我不需要更改XML中的任何内容 - 将服务切换为Off足以解决问题。