我有一个TextView我正在动态添加文本.
在我的main.xml文件中,我将属性设置为使我的最大行19和滚动条垂直.
在.java我textview.setMovementMethod(new ScrollingMovementMethod());用于允许滚动的文件中.
滚动效果很好.一旦占用了19行,并且添加了更多行,它就会开始滚动.问题是,我希望新文本滚动到视图中.
我正在写出它的值,textview.getScrollY()并且0无论如何都会保持不变(即使我手动向下滚动它并添加一行新的文本).
因此textview.scrollTo(0, textview.getScrollY());对我没有任何作用.
我应该使用另一种方法来获取垂直滚动量textview吗?我读过的所有内容都表明,无论出于什么意图和目的,我正在做的工作应该是:/
所以,我有一个像这样的TextView:
<TextView
android:layout_width="fill_parent"
android:layout_height="140.7dp"
android:id="@+id/terminalOutput"
android:layout_marginBottom="0.0dp"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:maxLines="8" />
Run Code Online (Sandbox Code Playgroud)
我将它用作一种运行日志,显示给用户,以便他们可以监视大约需要3分钟的任务进度.但是,一旦我超过8行,文本就会消失.这对用户来说是不直观的,因为除了通过向下滚动手动轮询之外,他们无法知道它已经离开了屏幕.
我怎么能这样做,以便每次我添加一些文本到这个TextView我让它向下滚动尽可能低?
此外,这是在Xamarin Android,但我不认为这是相关的.在它和Java之间进行转换很容易
我需要设置TextView最大高度(使用maxHeight或maxLines).如果有更多行文本,则应显示滚动条.我应该使用什么标记呢?
最初的想法是使用ScrollView包装TextView,但ScrollView没有maxHeight属性.
我发现使用垂直滚动文本设置textview很困难.在我的对话框中,我有一个带有大文本的textview,因为对话框是小窗口我希望textview文本垂直滚动,以便对话框看起来很好.下面是我的xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF" >
<ImageView
android:id="@+id/fbcancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:src="@drawable/fbcancel" />
<EditText
android:id="@+id/fbedittext"
android:layout_width="230dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/imageView1"
android:layout_marginLeft="5dp"
android:layout_marginTop="33dp"
android:background="@drawable/roundcorners"
android:ems="10"
android:gravity="center"
android:hint="@string/fbhint"
android:lines="6"
android:paddingRight="5dp"
android:scrollHorizontally="true" />
<RelativeLayout
android:id="@+id/relativeLayout1"
android:layout_width="80dp"
android:layout_height="250dp"
android:layout_alignParentRight="true"
android:layout_toRightOf="@+id/fbedittext" >
<Spinner
android:id="@+id/spinner"
android:layout_width="50dp"
android:layout_height="30dp"
android:layout_alignLeft="@+id/fbshare"
android:layout_alignRight="@+id/fbshare"
android:layout_below="@+id/fbshare"
android:layout_marginTop="16dp"
android:drawSelectorOnTop="true"
android:entries="@array/fblist"
android:visibility="gone"/>
<ImageView
android:id="@+id/fbpeople"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/fbshare"
android:layout_alignRight="@+id/fbshare"
android:layout_below="@+id/fbshare"
android:layout_marginTop="16dp"
android:background="@drawable/people"
android:drawSelectorOnTop="true" />
<ImageView
android:id="@+id/fbshare"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="65dp"
android:src="@drawable/newfb" />
</RelativeLayout>
<ScrollView android:id="@+id/textAreaScroller"
android:layout_width="fill_parent"
android:layout_height="173px"
android:layout_x="0px"
android:layout_y="25px"
<TextView …Run Code Online (Sandbox Code Playgroud) 我是android的初学者,并制作我的第一个Android应用程序.点击后,我的"关于"菜单项会显示一条带有非常长消息的alertdialog.我一直在尝试不同的方法使其可滚动,但我不能.我曾尝试在stackoverflow上阅读不同的问题,但它们对我没有用.这是我的警报对话框代码.
AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
alertDialog.setTitle("Title");
alertDialog.setMessage("Here is a really long message.");
alertDialog.setButton("OK", null);
AlertDialog alert = alertDialog.create();
alert.show();
Run Code Online (Sandbox Code Playgroud)
任何人都可以详细解释我如何使其可滚动?任何帮助或建议将不胜感激!
我有一个可滚动TextView的用户可以选择文本.我通过设置移动方法来添加滚动条ScrollingMovementMethod.
问题:除非应用程序暂停(例如,切换应用程序后),否则选择效果很好.一旦应用程序处于活动状态,选择将停止工作,并在日志中收到以下消息:
W/TextView:TextView不支持文本选择.选择取消.
我的设置:
我有一个Activity CoordinatorLayout和一个TextView包含在RelativeLayout其中的片段,如下所示:
<TextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:scrollbars="vertical" />
Run Code Online (Sandbox Code Playgroud)
在Java代码中,我必须这样做:
textView.setMovementMethod(new ScrollingMovementMethod());
textView.setTextIsSelectable(true);
textView.setFocusable(true);
textView.setFocusableInTouchMode(true);
Run Code Online (Sandbox Code Playgroud)
编辑:
问题出在以下调用中
textView.setMovementMethod(new ScrollingMovementMethod());
Run Code Online (Sandbox Code Playgroud)
如果我删除它有效,但我无法理解.
重现问题的最小步骤:
1)TextView使用以下布局创建一个空的Activity .
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view"
android:text="Some very very very long text..."
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:scrollbars="vertical" />
</android.support.design.widget.CoordinatorLayout>Run Code Online (Sandbox Code Playgroud)
2)设置TextViewin onStart()方法的可见性参数.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) …Run Code Online (Sandbox Code Playgroud)我想问一下我们如何创建Scroll TextView操作栏作为Whatsapp lastseen的状态.请打开whatsapp,看看状态是什么样:)
然后它将开始滚动,我们可以看到这样的文字:"昨天看到......"
我有预定义大小的EditText,如果用户输入更多文本我无法滚动文本,但它可以使用跟踪球滚动,我该如何解决这个问题
我需要实现一个自定义的 View 对象,它扩展了 TextView 并支持缩放文本的双指缩放和滚动。Android 文档说 TextView 类可以在不需要 ScrollView 容器的情况下处理自己的滚动,但我未能实现这种行为。我的自定义 TextView 将有一个固定的框架,通常将在其中显示的文本垂直大于框架。如果我们缩放文本,文本也会在水平方向上变大。我发现的大多数示例都在 ScrollView 中使用了 TextView,但如果可能的话,我特别想仅使用我的 TextView 扩展类来执行此操作。
提前致谢
我有一个ListView,其中每一行都有一个固定的高度.
每行包含一些TextView旁边的行.
有时,我想要显示的文本太大,因此我想使其可滚动.
所以我添加了(基于在Android上可滚动的TextView)以下行到我的TextView
text.setMaxLines(5);
text.setVerticalScrollBarEnabled(true);
text.setMovementMethod(ScrollingMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)
如果我单独使用TextView但是当我将TextView放在ListView中时,这种方法很好:
只要我进行垂直滚动,事件似乎被ListView使用.
关于如何使这项工作的任何建议?
下面添加了完整的(测试)活动(没有layout.xml)
public class TestScrollableTextView extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
LinearLayout layout = new LinearLayout(this);
//add a ListView
ListView list = new ListView(this);
layout.addView(list);
list.setAdapter(new BaseAdapter()
{
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
TextView text = new TextView(TestScrollableTextView.this);
String s = "";
//add 10 lines of text, all but first are indented
for (int i = 0; i < …Run Code Online (Sandbox Code Playgroud) android textview android-layout android-listview android-scroll