日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

让android的TextView可以滚动

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 让android的TextView可以滚动 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
讓android的TextView可以滾動 android

我想要在一個文本視圖里顯示一段文本,但是文字太多,一屏顯示不下。我需要讓我的TextView可以滾動。我應該怎么做,這是我的代碼。

final TextView tv = new TextView(this);tv.setBackgroundResource(R.drawable.splash);tv.setTypeface(face);tv.setTextSize(18);tv.setTextColor(R.color.BROWN);tv.setGravity(Gravity.CENTER_VERTICAL| Gravity.CENTER_HORIZONTAL);tv.setOnTouchListener(new OnTouchListener(){public boolean onTouch(View v, MotionEvent e){Random r = new Random();int i = r.nextInt(101);if (e.getAction() == e.ACTION_DOWN){tv.setText(tips[i]);tv.setBackgroundResource(R.drawable.inner);}return true;}});setContentView(tv);
?同問0 | 瀏覽18711 | 收藏1 | 分享 | 我要回答

4個回答

按贊數排序
niangzhi?? 2012.09.26 13:17
已采納

事實上你不需要使用ScrollView
只要在你的布局的xml文件中設置你的TextView的屬性:

android:maxLines = "AN_INTEGER"android:scrollbars = "vertical"

Then use:
然后在你的代碼中用:

yourTextView.setMovementMethod(new ScrollingMovementMethod())

它可以自由的滾動了。

評論 1 | 分享 |
鸛貍媛 但是事實上maxLines需要你輸入一個任意的數,這個并不是對每個屏幕尺寸和字體大小都適用?我發現用ScrollView實現它很簡單,意味著我不必添加任何擴展的XML屬性或代碼(就像設置移動方法)。
2 年多之前 回復
Sueyexin?? 2012.09.26 14:01

所有的方法中真的有用的是setMovementMethod()。這是用LinearLayout的一個示例代碼。
main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"> <TextView android:id="@+id/tv1"android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/hello"/> </LinearLayout> WordExtractTest.java public class WordExtractTest extends Activity {TextView tv1;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);tv1 = (TextView)findViewById(R.id.tv1);loadDoc();}private void loadDoc(){String s = "";for(int x=0;x<=100;x++){s += "Line: "+String.valueOf(x)+"\n";}tv1.setMovementMethod(new ScrollingMovementMethod());tv1.setText(s);} } 評論 0 | 分享 |
yizhenbeifeng?? 2012.09.26 14:51

這就是我完全用XML實現的

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><ScrollViewandroid:id="@+id/SCROLLER_ID"android:layout_width="fill_parent"android:layout_height="wrap_content"android:scrollbars="vertical"android:fillViewport="true"><TextViewandroid:id="@+id/TEXT_STATUS_ID"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_weight="1.0"/></ScrollView></LinearLayout>

注意:

1)android:fillViewport="true"和android:layout_weight="1.0"將使得文本視圖占據所有可用的空間。

2)當定義Scrollview,不要指定android:layout_height="fill_parent" 否則scrollview 不起作用!(就因為這個浪費了我一個小時的時間)

我贊成的觀點:
為了能夠在追加文本之后自動滾動到底部,用這個:

mTextStatus = (TextView) findViewById(R.id.TEXT_STATUS_ID); mScrollView = (ScrollView) findViewById(R.id.SCROLLER_ID);private void scrollToBottom() {mScrollView.post(new Runnable(){ public void run(){ mScrollView.smoothScrollTo(0, mTextStatus.getBottom());} }); } 評論 0 | 分享 |
大招至勝?? 2015.01.15 10:26

textView.post(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubtextView.append(line);final int scrollAmount = textView.getLayout().getLineTop(textView.getLineCount()) - textView.getHeight();if (scrollAmount > 0)textView.scrollTo(0, scrollAmount);elsetextView.scrollTo(0, 0);}});

總結

以上是生活随笔為你收集整理的让android的TextView可以滚动的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。