安卓的界面布局是非常复杂的,有时候我们无法在一行里面显示过长的文本,网上提供了许多的方法
在TextView 添加 ellipsize="marquee" 这样确实不是..了,但却无法看到全部
所以加入了2个属性
focuable="true"
focusableIntouchMode="true“
效果出来了,能实现自由滚动,但有时候文本并不止一个
尝试添加了第二个文本,发现第二个文本并不能如愿滚动
原因在于,第一个TextView 把焦点获取了,导致后面的无法取得焦点,只有取得了焦点后才会滚动
解决方法是:
自定义一个继承TextView的类
创建默认的构造方法
把 isFouces()复写
默认 返回true 代码如下 :
package com.example.john.marqueetextviewdemo;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* Created by john on 2016/9/16.
*/
public class MarqueeText extends TextView {
public MarqueeText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
public MarqueeText(Context context, AttributeSet attrs ) {
super(context, attrs);
}
public MarqueeText(Context context){
super(context);
}
//覆写此方法
@Override
public boolean isFocused() {
return true;
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.john.marqueetextviewdemo.MainActivity">
<com.example.john.marqueetextviewdemo.MarqueeText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/textview"/>
<com.example.john.marqueetextviewdemo.MarqueeText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/textview"/>
<com.example.john.marqueetextviewdemo.MarqueeText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:text="@string/textview"/>
</LinearLayout>