【发布时间】:2013-10-29 03:51:19
【问题描述】:
我已经搜索并搜索以找到有关如何将垂直(或水平)滚动条添加到 TextView 而不必使用 XML 来添加行的答案:android:scrollbars="vertical"。
必须有一种无需将其粘贴在另一个 ScrollView 中的编程方式来执行此操作。
我刚刚发现了如何以及因为我对此感到兴奋并想帮助其他遇到同样问题的人,这里是:
【问题讨论】:
标签: android scroll textview scrollview
我已经搜索并搜索以找到有关如何将垂直(或水平)滚动条添加到 TextView 而不必使用 XML 来添加行的答案:android:scrollbars="vertical"。
必须有一种无需将其粘贴在另一个 ScrollView 中的编程方式来执行此操作。
我刚刚发现了如何以及因为我对此感到兴奋并想帮助其他遇到同样问题的人,这里是:
【问题讨论】:
标签: android scroll textview scrollview
Rusian Yanchyshyn,在Android: Enable Scrollbars on Canvas-Based View 上发布了答案中的关键
在匿名类和初始化块的帮助下,我们现在可以执行以下操作:
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();
}
}
【讨论】:
// try this
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
</LinearLayout>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView textView = new TextView(this);
textView.setText("demotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotextdemotext");
textView.setVerticalScrollBarEnabled(true);
textView.setLines(3);
textView.setMovementMethod(new ScrollingMovementMethod());
addContentView(textView,new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
}
【讨论】:
仅在滚动时显示
Xml(在 textView 元素中):
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbars="vertical"
创建时:
textView.movementMethod = ScrollingMovementMethod()
【讨论】:
首先 - 制作一个 style.xml
<style name="VerticalScrollableTextView">
<item name="android:scrollbars">vertical</item>
<item name="android:scrollbarFadeDuration">0</item>
</style>
第二个 - 使用 ContextWrapper
val textView = TextView(
ContextThemeWrapper(context, R.style.VerticalScrollableTextView)
)
textView.movementMethod = ScrollingMovementMethod.getInstance()
就是这样!
【讨论】: