开发者

Scrollable TextView in Android Widget

I would like to create an android widget with a scrollable textview.

The solutions given to this question Making TextView scrollable on Android cannot be applied because it is a widget:

1. This

 findViewById(R.id.textview).setMovementMethod(new MovementMethod());

does not work, since findViewById is not available in AppWidgetProvider but only in Activity.

开发者_C百科

2.Putting a ScrollView around the TextView also does not work, because I get an InflateException:

 android.view.InflateException: Binary XML file line #23: Error inflating class ScrollView

Can anybody give me a hint, how to make a TextView in a Widget scrollable?


I solved this problem by putting the text view inside ListView with single node, which is supported in App widget.

http://developer.android.com/guide/topics/appwidgets/index.html#collections


It looks like this is not possible.

More on this can be found here: http://code.google.com/p/android/issues/detail?id=9580

and here: How to make a scrollable app widget?

So, probably it is possible to do make appwidgets scrollable in the HTC sense environment but not for normal android environments.

A way around this is to add buttons that go up and down in a list.


I have been working on this with two buttons which increment and decrement through an array. Just having trouble accessing the global variables. Did you make any headway on this?


Another solution is:

  • Add to textview any web link - for example: www.google.com.

  • Setting text value with HtmlCompat.fromHtml method:

    textView.setText(HtmlCompat.fromHtml("some text" + "\nwww.google.com", HtmlCompat.FROM_HTML_MODE_COMPACT));

After that vertical scrollbar is appeared. But it's not elegant and full solution. It's temporary workaround maybe...

The complete full solutiion is bat-el-g 's answer - with adding ListView.

Current marked solution (which just tell: "it's not possible") - is wrong.


In mainactivity.java:

after code text view:

TextView txt = (TextView) findViewById(R.id.textView id);

Enter this code:

txt.setMovementMethod(new ScrollingMovementMethod());

and you will be ok.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜