【问题标题】:text View not displaying in scroll View, inside Android emulator文本视图未显示在滚动视图中,在 Android 模拟器中
【发布时间】:2020-05-05 11:49:26
【问题描述】:

我创建了一个简单的应用程序,它在滚动视图中显示用户名和她的简历。在初始阶段,当我刚刚在 Scroll View 中添加了一个 TextView、一个 ImageView 和一个 TextView 时。但是当我运行该应用程序时,它只显示了最上面的 TextView 以及我刚刚添加的星形 ImageView,而不是 ScrollView 的内容。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/rootLinearLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingStart="@dimen/padding"
    android:paddingEnd="@dimen/padding">

    <TextView
        android:id="@+id/nameTextView"
        style="@style/nameStyle"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="@string/shivam_jha" />

    <ImageView
        android:id="@+id/starImageView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="@dimen/layout_margin"
        android:contentDescription="@string/star"
        tools:srcCompat="@android:drawable/btn_star_big_on" />

    <ScrollView
        android:id="@+id/bioScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="@dimen/layout_margin">

        <TextView
            android:id="@+id/bioTextView"
            style="@style/nameStyle"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:lineSpacingMultiplier="1.1"
            tools:text="@string/test" />
    </ScrollView>
</LinearLayout>

这是字符串资源文件:

<resources>
    <string name="app_name">About Me App</string>
    <string name="shivam_jha">Shivam Jha</string>
    <string name="star">star</string>
    <string name="test">Hey, this is demo string</string>


</resources>

这是维度资源文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="text_size">20sp</dimen>
    <dimen name="small_padding">8dp</dimen>
    <dimen name="layout_margin">16dp</dimen>
    <dimen name="padding">6dp</dimen>
</resources>

这是样式资源文件:

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="nameStyle">
        <item name="android:layout_marginTop">@dimen/layout_margin</item>
        <item name="android:fontFamily">@font/roboto</item>
        <item name="android:paddingTop">@dimen/small_padding</item>
        <item name="android:textColor">@android:color/black</item>
        <item name="android:textSize">@dimen/text_size</item>
    </style>

</resources>

【问题讨论】:

  • 您能否改写问题或添加结果的屏幕截图
  • 我已经添加了应用运行后的截图。

标签: android xml kotlin


【解决方案1】:

好吧,在搜索了一段时间的代码后,我知道为了在 Scroll View 中显示文本,我使用的是 tool 命名空间而不是 apptool 命名空间仅用于虚拟数据:编译时自动删除的数据。

所以,我删除了以下行:

tool:text="@string/bio" />

与:

android:text="@string/bio" />

现在,一切正常! 感谢 Nikhil 和 potter soln 的帮助:)

【讨论】:

    【解决方案2】:

    您可以尝试在滚动视图中使用 LinearLayout,在 LinearLayout 中使用 TextView。 像这样:

    <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:id="@+id/bioTextView"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:lineSpacingMultiplier="1.1"
                style="@style/nameStyle"
                tools:text="123" />
    </LinearLayout>
    

    试试这个解决方案。

    【讨论】:

    • 它没有帮助..虽然在滚动视图内的线性布局中添加东西是一种常见的做法,但我认为没有必要为简单的事情添加线性布局......只是一件事,TextView .. 应用运行后输出仍然相同
    【解决方案3】:

    您仍在使用 LinearLayout。我建议你改用约束布局。

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    
    <TextView
        android:id="@+id/textView15"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="32dp"
        android:text="Your name"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
    
    <ScrollView
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="32dp"
        android:layout_marginTop="32dp"
        android:layout_marginEnd="32dp"
        android:layout_marginBottom="32dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView15">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
    
            <TextView
                android:id="@+id/textView18"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="t vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio cumque nihil impedit quo minus id quod maxime placeat facere possimus, omnis voluptas assumenda est, omnis dolor repellendus. Temporibus autem quibusdam et aut officiis debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae sint et molestiae non recusandae. Itaque earum rerum hic tenetur a sapiente delectus, ut aut reiciendis voluptatibus maiores alias consequatur aut perferendis doloribus asperiores repellat" />
        </LinearLayout>
    </ScrollView>
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    【讨论】:

    • 它没有帮助.. 仍然是相同的输出
    • 你有任何想要达到的精确结果的线框吗?
    • 好吧,Nikhil,现在一切正常,感谢您的帮助。但是“虽然在滚动视图中的线性布局中添加内容是一种常见做法,但我认为没有必要为一件简单的事情添加线性布局......只有一件事,TextView“我想你应该考虑一下
    • 顺便说一句,我喜欢你对约束布局的建议,以获得更好的性能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-16
    • 2011-03-31
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多