TextView显示在设计预览中,但不在实际的Android应用程序中

时间:2017-06-29 15:43:13

标签: android android-layout android-studio textview

我在第二个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错误,它表示无法找到隐藏密码图标等等) What Android Studio shows me

这就是我的设备显示的内容 What I get on my device

修改:我删除了布局文件中的所有内容,但TextView和父LinearLayout除外,它仍未显示。

1 个答案:

答案 0 :(得分:1)

发现了这个问题。将android:text="You're currently logged in"切换为android:text="You\'re currently logged in"修复它。所以我猜Android在用XML设置文本时需要转义单引号?

使用布局检查工具找到,该工具显示mText没有值