【问题标题】:android elipsized textview doesn't work if to place textview after listview如果在listview之后放置textview,android elipsized textview不起作用
【发布时间】:2026-01-05 09:05:01
【问题描述】:

我发现椭圆形文本视图的行为非常奇怪。例如,如果将 textview 放在 listview 之后,它不会滚动文本。如果我将 textview 放在布局的开头,它就可以工作。会是什么?

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

<!--
    <TextView
            android:text="START | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | END"
            android:id="@+id/MarqueeText1"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:scrollHorizontally="true"
            android:paddingLeft="15dip"
            android:paddingRight="15dip"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:freezesText="true"/>
-->


    <include layout="@layout/reminder_header_item"/>

    <ListView
            android:id="@+id/lv_trade_points"
            android:layout_width="match_parent"
            android:layout_height="300dp"
            >
    </ListView>

    <View
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginBottom="1dp"
            android:layout_alignParentBottom="true"
            android:background="#DADADC" />
    <TextView
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:text="START | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | END"
            android:id="@+id/MarqueeText1"
            android:layout_width="fill_parent"
            android:layout_height="40dp"
            android:singleLine="true"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:scrollHorizontally="true"
            android:paddingLeft="15dip"
            android:paddingRight="15dip"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:freezesText="true"/>
    <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:layout_marginBottom="1dp"
            android:layout_alignParentBottom="true"
            android:background="#DADADC" />

</LinearLayout>

我的布局

【问题讨论】:

    标签: android listview textview


    【解决方案1】:

    你想要滚动,你的 textView 高度必须是 wrap_content

    如果您在 dp 中指定,您将无法实现目标

    <TextView
                xmlns:android="http://schemas.android.com/apk/res/android"
                android:text="START | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | lunch 20.00 | Dinner 60.00 | Travel 60.00 | Doctor 5000.00 | END"
                android:id="@+id/MarqueeText1"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:singleLine="true"
                android:ellipsize="marquee"
                android:marqueeRepeatLimit="marquee_forever"
                android:scrollHorizontally="true"
                android:paddingLeft="15dip"
                android:paddingRight="15dip"
                android:focusable="true"
                android:focusableInTouchMode="true"
                android:freezesText="true"/>
    

    【讨论】:

    • wrap_content 没有帮助。还是同样的问题。 textview 的表现如何取决于布局上的位置。很奇怪。
    • 有人知道答案吗?有什么想法吗?