您的位置:首页 > 其它

长文本单行滚动显示

2017-02-28 15:48 253 查看
转载请注明出处:http://blog.csdn.net/mr_leixiansheng/article/details/58600442

步骤:

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; }
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: