Android 如何以编程方式在TextView上显示滚动条
我搜索了又搜索,想找到一个答案:如何在文本视图中添加垂直(或水平)滚动条,而不必使用XML来添加行:android:scrollbars=“vertical” 必须有一种方法可以通过编程实现,而不需要在另一个ScrollView中使用它Android 如何以编程方式在TextView上显示滚动条,android,scroll,textview,scrollview,Android,Scroll,Textview,Scrollview,我搜索了又搜索,想找到一个答案:如何在文本视图中添加垂直(或水平)滚动条,而不必使用XML来添加行:android:scrollbars=“vertical” 必须有一种方法可以通过编程实现,而不需要在另一个ScrollView中使用它 我刚刚发现了我是如何并且因为我对这个问题感到兴奋的,我想帮助那些被同样问题困扰的人,这里是:俄罗斯的Yanchyshyn,在他的回答中把答案贴在 借助另一个类&初始化程序块,我们现在可以执行以下操作: TextView textViewW
我刚刚发现了我是如何并且因为我对这个问题感到兴奋的,我想帮助那些被同样问题困扰的人,这里是:俄罗斯的Yanchyshyn,在他的回答中把答案贴在 借助另一个类&初始化程序块,我们现在可以执行以下操作:
TextView textViewWithScrollBars = new TextView(context)
{
{
setVerticalScrollBarEnabled(true);
setMovementMethod(ScrollingMovementMethod.getInstance());
setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
// Force scrollbars to be displayed.
TypedArray a = this.getContext().getTheme().obtainStyledAttributes(new int[0]);
initializeScrollbars(a);
a.recycle();
}
}
俄罗斯人Yanchyshyn在他的回答中把钥匙贴在了 借助另一个类&初始化程序块,我们现在可以执行以下操作:
TextView textViewWithScrollBars = new TextView(context)
{
{
setVerticalScrollBarEnabled(true);
setMovementMethod(ScrollingMovementMethod.getInstance());
setScrollBarStyle(View.SCROLLBARS_INSIDE_INSET);
// Force scrollbars to be displayed.
TypedArray a = this.getContext().getTheme().obtainStyledAttributes(new int[0]);
initializeScrollbars(a);
a.recycle();
}
}
//试试这个
activity_main.xml
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView TextView=新的TextView(此);
textView.setText("DemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtextdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtextdemoxtdemoxtextextextextextextextextdemoxtdemoxtextextextextextextdemoxtext;
textView.setVerticalScrollBarEnabled(true);
设置行(3);
setMovementMethod(新的ScrollingMovementMethod());
addContentView(textView,新建ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_内容,ViewGroup.LayoutParams.WRAP_内容));
}
//试试这个
activity_main.xml
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView TextView=新的TextView(此);
textView.setText(“DemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtDemoExtextdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtdemoxtextdemoxtdemoxtextextextextextextextextdemoxtdemoxtextextextextextextdemoxtext;
textView.setVerticalScrollBarEnabled(true);
设置行(3);
setMovementMethod(新的ScrollingMovementMethod());
addContentView(textView,新建ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_内容,ViewGroup.LayoutParams.WRAP_内容));
}
仅在滚动时显示
Xml(在textView元素中):
OnCreate:
textView.movementMethod = ScrollingMovementMethod()
仅在滚动时显示 Xml(在textView元素中): OnCreate:
textView.movementMethod = ScrollingMovementMethod()
首先,创建一个style.xml
<style name="VerticalScrollableTextView">
<item name="android:scrollbars">vertical</item>
<item name="android:scrollbarFadeDuration">0</item>
</style>
仅此而已!首先-创建一个style.xml
<style name="VerticalScrollableTextView">
<item name="android:scrollbars">vertical</item>
<item name="android:scrollbarFadeDuration">0</item>
</style>
仅此而已!Hi Haresh,其要点是“setVerticalScrollBarEnabled(true)”本身不显示滚动条。您还必须设置此属性setMovementMethod(new ScrollingMovementMethod())@Hareshchelana很酷,我们如何启用自动滚动到最后一行?用户通常希望看到更新的消息,但不总是旧消息。嗨,Haresh,这一点的关键是“setVerticalScrollBarEnabled(true)”本身不显示滚动条。您还必须设置此属性setMovementMethod(new ScrollingMovementMethod())@Hareshchelana Cool,我们如何启用自动滚动到最后一行?用户通常希望看到更新的消息,但不希望总是看到旧消息。不确定这是否适用于API级别21及以上,因为initializeScrollbar方法已被删除。对于现有的TextView?不确定这是否适用于API级别21及以上,作为initializeScrollbars方法已被删除..对于现有的TextView?您阅读了问题吗?问题是如何在不使用xml的情况下执行此操作。是的,但所有这些xml元素都以编程方式进行模拟!您阅读了问题吗?问题是如何在不使用xml的情况下执行此操作。是的,但所有这些xml元素都以编程方式进行模拟!