如何设置属性的onClick为滚动型?(How can I set attribute onClic

2019-09-17 07:59发布

我有以下布局

<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()的任何地方点击屏幕上。

我试过设置android:layout_height="wrap_content"LinearLayoutandroid:onClick="toQuestion"ScrollView ,但同样的结果。

Answer 1:

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

android:fillViewport="true"

ScrollView



Answer 2:

我也有类似的问题,简单地摆脱了滚动视图本身。 相反,我直接插入TextView的本身,与前面提上滚动型的约束。 我的滚动型的整个目的是TextView的滚动,而不是在几个项目,因此这似乎是一个更优雅的方式做。

一个(垂直)滚动条添加到我的activity.hmtl的TextView:

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

这增加了onCreate方法:

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

不需要写滚动响应。 我喜欢。

我发现这里的解决方案(THX Juned莫卧儿):

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



Answer 3:

为了使滚动视图填满整个屏幕的变化:

<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();
                    }
                });


文章来源: How can I set attribute onClick to a ScrollView?