0

だから私がやろうとしているのは、TextViewをクリックできるようにすることです。ScrollView 内に TextView があり、画面をタップするとイベントが発生するようにしようとしています。現在、TextView をタップすると、イベントが発生します。ただし、問題は次のとおりです。テキストが 1 行しかない場合、onTouch を検出できるようにするには、そのテキスト行をクリックする必要があります。TextView を拡張して、画面の余白をカバーしたいと考えています (画面の下部に 2 つのボタンがあります)。実際のジェスチャー コントロールを使用する際の問題は、画面上のボタンをクリックしたときにも検出されるため、シングル タップでは役に立たないことです。私はこれを理解しようとしてきましたが、何らかの理由でうまくいきません。これが私のコードです。

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()){
            case R.id.close:
                finish();
                break;  
            case R.id.flashcard:
                if(tv.getText().equals(myCursor.getString(iFront)))      {
                    tv.setText(myCursor.getString(iBack));
                    break;
                }
                tv.setText(myCursor.getString(iFront));
                break;
            case R.id.add_new:
                Intent list = new Intent("com.example.flashcards.ADD_FLASHCARD");
                startActivity(list);
                break;
        }
    }


<?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" >

<ScrollView 
    android:id="@+id/scrollable"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight=".1"
    android:gravity="center">
    <TextView
        android:id="@+id/flashcard"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:gravity="center"
        android:scrollbars="vertical"
        android:textSize="20dp" />
</ScrollView>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/add_new"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.55"
        android:text="Add New" />

    <Button
        android:id="@+id/close"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.55"
        android:text="close" />
</LinearLayout>

</LinearLayout>
4

1 に答える 1

8

You want to set fillViewport to true for your ScrollView. Romain Guy has a more in depth explanation here.

于 2013-01-08T01:57:37.973 に答える