listview上有显示两个textview,如果textview中的文字长度超过一个固定的范围,则以ellipsize="end",省略结尾除来显示。 如下:
<TextView android:id="@+id/text2"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:singleLine="true"
android:layout_weight="3"
android:marqueeRepeatLimit="marquee_forever"
/>
此时的此textview是不会自动滚动的,如果把android:ellipsize="marquee",则焦点移到listview该列的时候,该textview则会自动滚动。
现在我要实现的功能就是,当我点击上下键,移动焦点,如果当焦点所在列的textview的长度超过一个固定的长度,则把它原来以结尾处省略的方式改为全部显示并且自动滚条的形式。
如果说的更直白点,就是当我listview的某一列获得焦点后,则将它布局中的android:ellipsize="end"改为android:ellipseize="marquee"。请问该怎么做啊,我试了很多方法,都没成功。
<TextView android:id="@+id/text2"
android:layout_width="100dip"
android:layout_height="fill_parent"
android:gravity="center_vertical"
android:layout_gravity="center_vertical"
android:ellipsize="end"
android:singleLine="true"
android:layout_weight="3"
android:marqueeRepeatLimit="marquee_forever"
/>
此时的此textview是不会自动滚动的,如果把android:ellipsize="marquee",则焦点移到listview该列的时候,该textview则会自动滚动。
现在我要实现的功能就是,当我点击上下键,移动焦点,如果当焦点所在列的textview的长度超过一个固定的长度,则把它原来以结尾处省略的方式改为全部显示并且自动滚条的形式。
如果说的更直白点,就是当我listview的某一列获得焦点后,则将它布局中的android:ellipsize="end"改为android:ellipseize="marquee"。请问该怎么做啊,我试了很多方法,都没成功。
你只要能够知道你的listview当前选中的是第几个子item 你把这个item的textview的marquee设置为"marquee"
就行了,默认的全部是end
但是我这个方法还有一个缺点就是你每次选中一项后都要重新的getView方法走一下 把上次选中的那个
子item的marquee重新设置为end;
textview的焦点和listview的焦点历来都是有些麻烦的;
要不然你在textview的布局中设置setFocusable=“true”之类的;试试看 不行那就麻烦点用我上面的
方法 或者是再找找资料看看吧