Я хочу разработать динамическую c игру для соответствия Android. Я хочу изменить размер доски с 4x4 до 8x8 (например, 7x4 и 5x4 будут допустимыми размерами), в зависимости от выбранного уровня сложности. Это означает, что у меня может быть доска 5х4, 7х4 и так далее.
Я также хочу справиться с изменением ориентации в этой игре. Это означает, что я хочу изменить размеры доски при изменении ориентации (например, портрет 5 x 4 может стать пейзажем 4 x 5).
Я предложил два разных подхода.
Создайте #N различных файлов макета, используя Constraint Layout
. Затем я вставил логи c в свой fragment
, чтобы решить, какой файл макета выбрать. Это позволит справиться практически со всей сложностью придания ему динамичности c после того, как макеты ограничений будут автоматически сжиматься и растягиваться. Недостатки я понял: а. код будет выглядеть грязно. Мне бы пришлось findViewById
в зависимости от выбранного макета; б. изменение конфигурации может быть проблемой, когда мне придется менять файл макета на лету; c. обслуживание будет сложно. Представьте себе, что вы поддерживаете все эти XML файлы.
Используйте GridView. Я могу сделать все это динамически c. Адаптер связывает его для меня, мне просто нужно сказать GridView, сколько столбцов я хочу. Недостатки: а. Мне нужно придумать магию c, чтобы она подходила; б. Высота - это проблема, и onBind
может меня испортить, если ViewHolder решит повторно связать представления.
На данный момент я склонен к go для первого варианта. Но я беспокоюсь о принятии решения, о котором сожалею после.
Любой совет или предложение?
Заранее спасибо, Даниэль