Я хочу сделать так, чтобы родительский элемент был доступен только для кликов, а не дочерний элемент родительского элемента. Предположим, есть контейнер размером 400x400, на который можно нажимать, а дочерним элементом этого контейнера является другой контейнер размером 200x200.

Теперь, если мы коснемся второго контейнера (меньшего), он также станет кликабельным. Как я могу предотвратить щелчок по маленькому контейнеру?

Я перепробовал почти все, но, возможно, у меня нет хороших навыков флаттера, пожалуйста, помогите.

Код:

InkWell(onTap: (){print('Container Clicked');},child: 
Container(height: 400, width: 400, color: Colors.blue,
child: Center(child: Container(height: 200,width: 200, color: Colors.green,)),),)
0
Siddharth Mehra 14 Окт 2021 в 14:22

2 ответа

Лучший ответ

Попробуй это

       InkWell(
          onTap: (){
            print('Container Clicked');
          },
            child: Container(
              height: 400, 
              width: 400, 
              color: Colors.blue,
              child: Center(
                child: GestureDetector(
                  onTap: () {}, /// <-- locked inkwell tap
                  child: Container(
                    height: 200,  
                    width: 200,
                    color: Colors.green,)
                ),
              ),
            ),
          )
1
novol 14 Окт 2021 в 11:25

Надеюсь, я правильно понял ваш вопрос. Это код, если вы хотите сделать кликабельным только контейнер большего размера,

Stack(
  children:[
    InkWell(
      onTap: (){
        print('Container Clicked');
      },
      child: Container(
        height: 400, width: 400,
        color: Colors.blue,
      ),
    ),
    Center(
      child: Container(
        height: 200,width: 200,
        color: Colors.green,
      ),
    ),
  ],
),
1
Shaan Mephobic 14 Окт 2021 в 11:34