Intereting Posts
Преобразование процедурных методов стиля в функциональный стиль Kotlin – присвоить значение переменной enum переменной без значения. Как сделать groupBy и собирать с помощью RxJava и Kotlin? Есть ли способ повторно использовать экземпляр задания? Как получить класс java из общего параметра param? Управление FXML всегда имеет значение при использовании Kotlin Как избежать метода класса фабрики kotlin по подтипу? Как сбросить содержимое просмотра ресайклера при вызове с помощью Kotlin Генериры Котлина Массив <T> приводит к «Невозможно использовать T как параметр типа reified. Вместо этого используйте класс, но List <T> не делает «JSON от Klaxon's довольно печатает» " В инъекции зависимостей Kodein, как вы можете вставлять экземпляры Kodein в экземпляры? Почему строка интерполяции Kotlin объединяет строки в Java? Могу ли я запустить kotlin как скрипт с Java Scripting API конвертировать компаратор в лямбда в Котлин Метод, который не вызывается, без ошибок, может быть, связан с дженериками / сопутствующими объектами / наследованием / параллелизмом / вложением

Фрагмент: RelativeLayout Видимость не изменяется в OnCreateView

(Я использую Kotlin) Итак, вот мой OnCreateView в фрагменте.

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view: View = inflater!!.inflate(R.layout.fragment_bots, container, false) BotDiv2.visibility = View.VISIBLE startUp() return view } 

и вот xml relativelayout:

 <RelativeLayout android:id="@+id/BotDiv2" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="33.3" android:visibility="invisible"> <ImageButton android:id="@+id/BotBtn1" android:layout_width="90dp" android:layout_height="90dp" android:layout_centerHorizontal="true" android:layout_centerVertical="true" android:background="@null" android:scaleType="fitCenter" android:src="@android:drawable/btn_star_big_on" /> <TextView android:id="@+id/uselessLevel1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/BotBtn1" android:layout_alignStart="@+id/BotBtn1" android:text="Level:" /> <TextView android:id="@+id/BotWorth1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/BotBtn1" android:layout_centerHorizontal="true" android:text="$500" android:textAppearance="@style/TextAppearance.AppCompat.Large" /> <TextView android:id="@+id/levelBot1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/BotBtn1" android:layout_alignEnd="@+id/BotBtn1" android:text="1" /> </RelativeLayout> 

Чтобы использовать его в другой функции, но это:

 BotDiv2.visibility = View.VISIBLE 

вызывает NPE. Я также пытался использовать findViewById, но это также вызывает NPE (или не влияет на Cot of Kotlin's??).

Помимо идентификатора, похоже, не так, как указано в комментарии выше …

Поскольку на этом этапе ваш View еще не установлен для вашего Fragment (вы не вернули его в фреймворк), вы не можете вызвать findViewById на самом Fragment , но вы можете сделать вызов findViewById на вновь завышенном View а не:

 val view: View = inflater!!.inflate(R.layout.fragment_bots, container, false) val bd2 = view.findViewById(R.id.BotDiv2) bd2.visibility = View.VISIBLE 

Если вы используете Kotlin Android Extensions, вы можете сделать то же самое с этим синтаксисом:

 val view: View = inflater!!.inflate(R.layout.fragment_bots, container, false) view.BotDiv2.visibility = View.VISIBLE