我在第二个Activity中有一个XML布局,根据用户是否登录显示两个LinearLayouts
中的一个,TextView
我从未在应用中显示该文本,但是当我在布局编辑器中查看“设计”面板时,它确实正确地呈现它
TextView
就在那里(如果我设置了背景颜色,它会显示颜色),但Text本身从不渲染。
点击MainActivity
上的按钮会启动LoginActivity
,其中包含onCreate
(它是Kotlin):
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.login_layout)
布局:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:visibility="gone"
android:id="@+id/loggedOut"
android:padding="24dp">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/passName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:focusable="true"
android:hint="Username"
android:inputType="textCapCharacters" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/passPin"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:focusable="true"
android:hint="PIN"
android:inputType="numberPassword" />
</android.support.design.widget.TextInputLayout>
<Button
android:id="@+id/passSubmit"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/loggedIn"
android:visibility="visible"
android:padding="24dp">
<TextView
android:id="@+id/loggedInMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="You're currently logged in"
android:textAlignment="center"
android:textAppearance="@android:style/TextAppearance.Material.Headline" />
<Button
android:id="@+id/passLogout"
style="@style/Widget.AppCompat.Button.Colored"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Logout" />
</LinearLayout>
</FrameLayout>
这是Android Studio显示的内容(这些错误是TextInputLayout
错误,它表示无法找到隐藏密码图标等等)
修改:我删除了布局文件中的所有内容,但TextView
和父LinearLayout
除外,它仍未显示。
答案 0 :(得分:1)
发现了这个问题。将android:text="You're currently logged in"
切换为android:text="You\'re currently logged in"
修复它。所以我猜Android在用XML设置文本时需要转义单引号?
使用布局检查工具找到,该工具显示mText
没有值