Изменить макет в «Включить» программно с помощью Kotlin - PullRequest
0 голосов
/ 21 сентября 2019

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

У меня есть include для элементов управления,Однако я изо всех сил пытаюсь заставить layout измениться программно.Поиск с прошлой ночи, но не может найти способ сделать это, это вообще возможно?

Любая помощь или указатели в правильном направлении приветствуются.Спасибо

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".GamePlay">
 <include
        android:layout_width="match_parent"
        android:layout_height="88dp"
        layout="@layout/hand_two" <!-- this is what needs to change depending on settings -->
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        android:id="@+id/handLayout"/>
</androidx.constraintlayout.widget.ConstraintLayout>

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

От animusmind s answer : используйте ViewStub вместо include:

<ViewStub
    android:id="@+id/layout_stub"
    android:inflatedId="@+id/message_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.75" />

Затем в коде получите ссылку на заглушку, установитеего ресурс макета и надуйте его:

ViewStub stub = (ViewStub) findViewById(R.id.layout_stub);
stub.setLayoutResource(R.layout.whatever_layout_you_want);
View inflated = stub.inflate();

Ответ получен от kcoppock

0 голосов
/ 21 сентября 2019

Если у вас есть несколько представлений, которые вы хотели бы загружать по требованию программно, ViewStub является одним из решений

, перейдите по ссылке viewStub для множественного просмотра

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...