Fragmento: Visibilidad relativa de la presentación no modificable en OnCreateView

(Estoy usando Kotlin) Así que aquí está mi OnCreateView en el Fragmento.

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 } 

y aquí está el xml de 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> 

En querer usarlo en otra function, pero esto:

 BotDiv2.visibility = View.VISIBLE 

causa NPEs También traté de usar findViewById, pero eso también causa un NPE (o no afecta, primo de "?" de Kotlin).

Aparte de la ID aparentemente no está bien, como se menciona en un comentario anterior …

Como en esta etapa su View no está configurada para su Fragment (no la ha devuelto al marco), no puede invocar findViewById en el Fragment , pero puede realizar una llamada a findViewById en la View nuevamente inflada:

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

Si está utilizando las extensiones de Kotlin para Android, puede hacer lo mismo con esta syntax:

 val view: View = inflater!!.inflate(R.layout.fragment_bots, container, false) view.BotDiv2.visibility = View.VISIBLE 
  • Suprima las quejas de Dokka sobre "No hay documentation para com.foo.Bar $ toString ()"?
  • dsl dynamic usando kotlin con asistencia de contenido
  • kotlin obtiene vista desde el encabezado NavigationView
  • Cómo analizar JSON en Kotlin?
  • Usar kotlin con ContentResolver causa IllegalArgumentException
  • Una buena forma de acceder a palabras mixtas de 8/16/32 bits
  • Cómo usar con envoltorios pnetworkingeterminados?
  • Kotlin: "sincronizado" hace que el comstackdor no esté seguro de la initialization de una variable
  • ¿Cómo agrego una barra de herramientas a Android PreferenceActivity cuando NoActionBar está configurado como el tema de la aplicación?
  • onActivityResult no se llama cuando se llama a la actividad de java desde kotlin para get resultados
  • Agregue kotlinx-html-js al proyecto kotlin / js en intellij