Сенсорный макет делает его ребенка неприкосновенным - PullRequest
0 голосов
/ 20 ноября 2018

поэтому у меня есть пример: когда я касаюсь кнопки, все в порядке, как и ожидалось, но когда я касаюсь макета, его дочерний элемент становится неприкасаемым.Та же проблема, если у меня есть другое представление под этим макетом: когда я касаюсь кнопки, ее макет становится сплошным и блокирует ввод через него, как макет потребляет прикосновение или становится сфокусированным ... id:

code: main.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center"
android:clickable="false"
android:id="@+id/mainFrameLayout"
android:background="#55ff0000"
>

    <ImageButton
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:text="below Frame"

    android:id="@+id/mainButton1"
    />
    <ViewFlipper
    android:layout_width="fill_parent"
    android:layout_height="200dp"
    android:id="@+id/mainViewFlipper2"
    android:background="#5500ff00"
    android:clickable="false"
    >
        <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="200dp"

        android:clickable="false"
        >
            <ImageButton
            android:layout_width="50dp"
            android:layout_height="50dp"

            android:id="@+id/mainButton2"
            android:layout_gravity="center"
            />
        </FrameLayout>
    </ViewFlipper>
</FrameLayout>

MainActivity.java

package com.mycompany.myapp2;

import android.app.*;
import android.os.*;
import android.view.View.*;
import android.view.*;
import android.widget.*;
import android.widget.ActionMenuView.*;

public class MainActivity extends Activity 
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);


    findViewById(R.id.mainButton1).setOnTouchListener(new OnTouchListener(){
            @Override
            public boolean onTouch(View v,MotionEvent e)
            {
                return false;
            }
        });
    findViewById(R.id.mainButton2).setOnTouchListener(new OnTouchListener(){
            @Override
            public boolean onTouch(View v,MotionEvent e)
            {
                return false;
            }
        });
        //not helped
    /*findViewById(R.id.mainFrameLayout).setOnTouchListener(new OnTouchListener(){
     @Override
     public boolean onTouch(View v,MotionEvent e)
     {
     return false;
     }
     });*/
    //not working either
    //findViewById(R.id.mainFrameLayout).setOnTouchListener(null);
}
}

представьте себе, что у меня ViewFlipper с несколькими включениями FrameLayouts со сложным пользовательским интерфейсом, и когда я удерживаю 1 кнопку - SurfaceView за ViewFlipper становится неприкасаемым - это моя проблема

...