今天,在做项目时,发现titleName的长度较长,遮挡了左右两侧的其他控件,换行又会影响整体布局的美观,所以想到用滚动条的方式实现文字展示效果,如下:
先创建一个工具类
package com.view.edittext;
import android.content.Context;
import android.support.v7.widget.AppCompatTextView;
import android.util.AttributeSet;
import android.widget.TextView;
public class MarqueTextView extends AppCompatTextView {
public MarqueTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MarqueTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MarqueTextView(Context context) {
super(context);
}
@Override
public boolean isFocused() {
//true表示获取焦点
return true;
}
}
我使用的是AppCompatTextView,也可以使用TextView,两种方式都可以
然后,布局文件使用自己设定好的控件:
<com.view.edittext.MarqueTextView
android:singleLine="true"
android:marqueeRepeatLimit="marquee_forever"
android:ellipsize="marquee"
android:id="@+id/marqueTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:text="@string/stuPhyAssistant"
android:textColor="@color/white_FFF"
android:textSize="@dimen/sp_20" />
以上,简单的横向文字滚动显示就实现了。