2014-04-18 3 views
0

Так что я хочу, чтобы развернуть одну строку GridView щелчком мыши. Он должен выглядеть примерно как this. Представьте себе, что строки одинаково удалены друг от друга до щелчка мыши, а затем строка расширяется вертикально, когда меню закрывается, строки возвращаются к их нормальному интервалу.Как сделать всю строку GridView вертикально развернутой.

Возможно ли это с помощью стандартного GridView, или я должен создать свой собственный? Я играл с cellHeight, но это меняет высоту каждой строки, а не только текущей.

ответ

1

Это, вероятно, будет проще, если вы не используете GridView и вместо этого используете столбец, содержащий три строки. Вы можете просто сделать средний ряд невидимым, когда это не нужно. Это позволит UI быть более гибким.

Это должно нравится как это:

property bool informationsVisible: false 
Column { 
    anchors.fill: parent 
    Row { 
     id: firstRow 
     Repeater { 
      model: firstHalfOfYourData 
      delegate: MouseArea { 
       //Your item representation 
      } 
     } 
    } 

    Row { 
     id: informationsRow 
     visible: informationsVisible 
      //Display informations on the selected element here 
    } 

    Row { 
     id: secondRow 
     Repeater { 
      model: secondHalfOfYouData 
      delegate: MouseArea { 
       //Your item representation 
      } 
     } 
    } 
} 
+0

Я не думаю, что это будет работать с моделью, так как все объекты создаются динамически. – user2887117

+0

Обновлен мой ответ, чтобы отразить, как Repeater может использоваться для динамических данных. – abousquet

+0

Спасибо, я смог поиграть с ним и заставить его работать нормально. – user2887117

Смежные вопросы