【问题标题】:Make textview vertically scrollable使文本视图垂直滚动
【发布时间】:2016-10-14 06:31:35
【问题描述】:

如何让多个文本视图在屏幕的某些不同部分垂直滚动?

<ImageView
    android:id="@+id/imageView"
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:src="@drawable/girl1" />

<TextView
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:id="@+id/textview"
    android:maxLines="8"
    android:scrollbars="vertical"
    android:layout_alignTop="@+id/imageView"
    android:layout_toEndOf="@+id/imageView"
    android:layout_toRightOf="@+id/imageView"></TextView> </RelativeLayout>



TextView intro;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_meet_our_team);

    TextView txtview=(TextView)findViewById(R.id.textview);
    String text="I like programming in Android. This tip shows you how to make a TextView scrollable in Android.";
    txtview.setText(text);
    intro.setMovementMethod(new ScrollingMovementMethod());
} }

我收到以下错误:

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setMovementMethod(android.text.method.MovementMethod)' on a null object reference
                                                                         at com.example.cepl_pc.trial.MeetOurTeam.onCreate

【问题讨论】:

    标签: android textview scrollable


    【解决方案1】:

    你的问题在线intro.setMovementMethod(new ScrollingMovementMethod());

    您尚未为 TextView intro 分配任何 id,请将其替换为您的 txtView。 另外,你有android:maxLines = "8",而你的文本字符串不够长,无法获得滚动视图,使用下面的代码你会看到滚动效果。

      <ImageView
        android:id="@+id/imageView"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@drawable/girl1" />
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textview"
        android:maxLines = "3"
        android:scrollbars="vertical"
        android:layout_alignTop="@+id/imageView"
        android:layout_toEndOf="@+id/imageView"
        android:layout_toRightOf="@+id/imageView"></TextView>
    

    在java中,

    TextView txtview=(TextView)findViewById(R.id.textview);
        String text="I like programming in Android. This tip shows you how to make a TextView scrollable in Android.";
        txtview.setText(text);
        txtview.setMovementMethod(new ScrollingMovementMethod());
    

    【讨论】:

    • 如果我想要 3 个 imageviews 和 3 个 textviews 并希望它们滚动,我该怎么办。
    • 在这种情况下,我只是让您将 listview 用于多行,您的行将具有 imageView 和 textview ,不会有视图限制,您可以添加尽可能多的 imageViews 和 textViews想要一个低于另一个。:)
    【解决方案2】:

    你甚至可以

    <ScrollView
        android:layout_width="200dp"
        android:layout_height="200dp">
    
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="text"/>
    </ScrollView>
    

    【讨论】:

      【解决方案3】:

      如果你想让你的所有布局滚动。将 ScrollView 设置为你的根布局并将 fillview 端口设置为 true。像这样:

      <Scroll View
        xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:fillViewport="true"/>
      .
      .
      //rest of your xml code.
      .
      .
      <ScrollView/>
      

      如果可行,请在 cmets 部分告诉我。

      【讨论】:

        【解决方案4】:

        解决此问题的最佳方法是将其包含在您的 .xml 文件中的 ScrollView 中,如下所示。

        <ScrollView
                android:id="@+id/scrollView"
                android:layout_width="match_parent"
                android:layout_height="match_parent">
        <ImageView
            android:id="@+id/imageView"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:src="@drawable/girl1" />
        
        <TextView
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:id="@+id/textview"
            android:maxLines="8"
            android:scrollbars="vertical"
            android:layout_alignTop="@+id/imageView"
            android:layout_toEndOf="@+id/imageView"
            android:layout_toRightOf="@+id/imageView"></TextView>
        </ScrollView>
        

        【讨论】:

          【解决方案5】:

          声明文本视图

          textView1 = (TextView) findViewById(R.id.textView1);
          

          在方法中添加以下代码

          textView1.setMovementMethod(new ScrollingMovementMethod());
          

          【讨论】:

            猜你喜欢
            • 2011-06-22
            • 2019-07-08
            • 2017-07-30
            • 2015-12-21
            • 1970-01-01
            • 1970-01-01
            • 2016-10-06
            • 1970-01-01
            • 2013-07-18
            相关资源
            最近更新 更多