转载请注明出处:长文本单行滚动显示_Mr_Leixiansheng的博客-CSDN博客
步骤:
1、写一个继承TextView的类将isFocused 的return 内容改为 true
class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//将return 改为true 使控件能够聚焦
@Override
public boolean isFocused() {
return true;
}
2、布局文件中实现自定义控件,并添加
android:singleLine="true"(注:不能写成android:maxLines="1")
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
<?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">
<com.example.leixiansheng.runtextview.MyTextView
android:text="今天天气很好,出去玩儿吧!今天天气很好,出去玩儿吧!今天天气很好,出去玩儿吧!"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<com.example.leixiansheng.runtextview.MyTextView
android:text="快看,有流星。。。快看,有流星。。。快看,有流星。。。快看,有流星。。。"
android:singleLine="true"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
3、主程序
package com.example.leixiansheng.runtextview;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.AttributeSet;
import android.widget.TextView;
/**
* 实现长文本单行滚动显示
*/
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
class MyTextView extends TextView {
public MyTextView(Context context) {
super(context);
}
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyTextView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
//将return 改为true 使控件能够聚焦
@Override
public boolean isFocused() {
return true;
}
}