5

我有以下布局

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white" >

<LinearLayout
    android:id="@+id/answerMainFrame"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/white"
    android:isScrollContainer="true"
    android:onClick="toQuestion" >

    <ImageView
        android:id="@+id/answer_img"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:contentDescription="@string/question_img_cd" />

    <TextView
        android:id="@+id/answer"
        style="@style/Question" />
</LinearLayout>

有时ScrollView它太小了,不会填满整个屏幕,但我仍然想调用toQuestion()单击屏幕上任意位置的方法。

我尝试将and设置android:layout_height="wrap_content"为相同的结果。LinearLayoutandroid:onClick="toQuestion"ScrollView

4

3 回答 3

34

您可以尝试让LinearLayout实现该onClick属性,然后设置:

android:fillViewport="true"

ScrollView.

于 2012-05-18T11:11:49.607 回答
0

我有一个类似的问题,只是摆脱了滚动视图本身。相反,我直接插入了 TextView 本身,以及之前放在 ScrollView 上的约束。我的 ScrollView 的全部目的是在 TextView 中滚动,而不是在几个项目之间滚动,所以这似乎是一种更优雅的方式。

在我的 textview 中添加一个(垂直)滚动条 activity.hmtl :

    <TextView
    android:id="@+id/tvInfo"
    (...) 
    android:scrollbars="vertical" 
    />

将此添加到 onCreate 方法:

    oTV = (TextView) findViewById(R.id.tvInfo);
    oTV.setMovementMethod(new ScrollingMovementMethod());

无需编写滚动响应。我喜欢。

我在这里找到了解决方案(谢谢 Juned Mughal):

http://www.android-examples.com/make-textview-scrollable-in-android-programmatically/

于 2017-04-04T13:37:27.870 回答
-2

要使滚动视图填充屏幕更改:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/white" >

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrollView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@android:color/white" >

并将其放入您的 onCreate 方法中:

((ScrollView) findViewById(R.id.scrollView))
                .setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        toQuestion();
                    }
                });
于 2012-05-18T11:02:17.130 回答