Как использовать более одного XML-файла в Activity Kotlin - PullRequest
0 голосов
/ 24 января 2019

Есть ли шанс инициализировать более одного .xml файла и использовать там элементы, когда я хочу?

Вот мой код Android:

   mStepOneView                    = getLayoutInflater().inflate(R.layout.activity_exclusion_length, null);
   mStepTwoView                    = getLayoutInflater().inflate(R.layout.activity_gambling_sites, null);
   mStepThreeView                  = getLayoutInflater().inflate(R.layout.activity_info_sites, null);
   mStepFourView                   = getLayoutInflater().inflate(R.layout.activity_custom_websites, null);
   mStepFiveView                   = getLayoutInflater().inflate(R.layout.activity_activate_self_exclusion, null);

У меня есть контейнер вкоторый я заменяю другим шагом - каждый шаг отличается .xml макетом, и я получил каждый элемент из этих XML-файлов.Я хочу сделать это в Kotlin , проблема в том, что если mStepOneView надувается, я не могу получить значение элемента из mStepTwoView.

Ответы [ 2 ]

0 голосов
/ 24 января 2019

На самом деле, вы используете неправильный подход: либо вы должны использовать фрагменты (возможно, дочерние, если ваш родитель уже является фрагментом), либо вы должны объявить пустой макет внутри основного макета и только динамически добавлять другой XML-подобный макет. Вы можете использовать ниже код.

// get your inner relative layout child
RelativeLayout rl = (RelativeLayout) findById(R.id.rl);


// inflate content layout(Other XML file) and add it to the relative 
// layout as a child and update it with different layout (XML) files conditionally 

LayoutInflater layoutInflater = (LayoutInflater) 
        this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);    
rl.addView(1, layoutInflater.inflate(R.layout.content_layout, this, false) ); 
0 голосов
/ 24 января 2019

Я думаю, что вы можете справиться с этим, добавив «include» к основному ключевому слову xml и контролируя видимость каждого макета xml. Таким образом, вам нужно будет накачать макет xml, который содержит все макеты, и контролировать, какой макет xml показывать, получая макет с идентификатором и устанавливая видимость или исчезая и так далее.

 <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include 
          android:id="@+id/activity_exclusion_length"
          layout="@layout/activity_exclusion_length" />
       <include layout="@layout/activity_gambling_sites" />
       <include layout="@layout/activity_info_sites" />

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