1

私はこれに対する解決策を何時間も探していましたが、stackoverflow ですべての質問を検索し、レイアウト内のすべてを試したように感じます。以下に表示されているレイアウトを試す前は、edittext と 2 つの imagebutton がスクロールビュー内にありました。この古いレイアウトでは、オンタッチはフラグメントで完全に機能しましたが、編集テキストと 2 つの画像ボタンを使用して相対レイアウトを引き出すと、オンタッチは起動しませんでした。誰かがこの問題で私を助けることができますか? どんな助けでも大歓迎です。ありがとう

View fragmentView = inflater.inflate(R.layout.request, container, false);

fragmentView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {

            }
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"  
        android:layout_height="fill_parent"
        android:background="#BDCCE0" >

    <EditText
        android:id="@+id/etsearch"
        android:layout_width="210dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="6dp"
        android:layout_marginTop="10dp"
        android:hint="search..."
        android:singleLine="true"
        android:imeOptions="actionDone" />

    <ImageButton
        android:id="@+id/bsearch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/etsearch"
        android:layout_marginTop="9dp"
        android:src="@drawable/search" />

    <ImageButton
        android:id="@+id/bupdaterequests"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:layout_toRightOf="@id/bsearch"
        android:layout_marginTop="9dp"
        android:src="@drawable/refresh" />

  <ScrollView
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:fillViewport="true"
        android:background="#BDCCE0"
        android:layout_below="@id/etsearch" >

   <TableLayout
       android:id="@+id/myTableLayout"  
       android:layout_width="fill_parent"  
       android:layout_height="wrap_content" >    

   </TableLayout> 
 </ScrollView>
</RelativeLayout>
4

2 に答える 2

3

TouchEvent は「最上位」の要素から始まり、何らかのイベントによって消費されるまで、View 階層を「下に」細流します。この場合、ScrollView、Buttons、または EditText はすべて、RelativeLayout に到達する前にイベントを消費します...


基本的に、誰かが編集テキストの外側に触れたときにキーボードが消えるようにしたいだけです。

単純にルート レイアウトclickablefocusable.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clickable="true"
    android:focusable="true"
    android:focusableInTouchMode="true" >
于 2012-11-09T23:25:07.333 に答える
1

android:clickable="true"問題を解決しました..

于 2013-08-06T08:17:23.933 に答える