San*_*dra 7 android kotlin kotlin-extension kotlin-android-extensions
我想访问包含在NavigationView的headerLayout中的TextView.是否可以使用Kotlin android扩展程序访问该视图?我使用了这个方法,但TextView(此处为txtName)始终为null.
这是我的activity_main.xml
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="end"
android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_splash"
app:menu="@menu/activity_splash_drawer" />
Run Code Online (Sandbox Code Playgroud)
nav_header_splash.xml
<TextView
android:id="@+id/txtName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/txt1"
android:layout_below="@+id/imageView"
android:text="@string/name"
android:textSize="18sp"
android:textColor="@color/white" />
Run Code Online (Sandbox Code Playgroud)
在MainActivity.kt 我已导入
import kotlinx.android.synthetic.main.nav_header_splash.*
Run Code Online (Sandbox Code Playgroud)
在onCreate()Activity类我设置文本就好
txtName.text = "Sample Code"
Run Code Online (Sandbox Code Playgroud)
app文件夹的build.gradle
apply plugin: 'kotlin-android-extensions'
Run Code Online (Sandbox Code Playgroud)
我的项目的build.gradle
classpath "org.jetbrains.kotlin:kotlin-android-extensions:$kotlin_version"
Run Code Online (Sandbox Code Playgroud)
我的代码中有错误吗?请帮忙.我是Kotlin的新人.
Iro*_*ack 11
不要 import kotlinx.android.synthetic.main.nav_header_splash.* 将可从主文件本身
代替 import kotlinx.android.synthetic.main.nav_header_splash.view.*
并通过使用获得视图
val header = mNavigationView.getHeaderView(0)
header.txtName.text = "Sample Code"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
623 次 |
| 最近记录: |