文本没有显示在Android上,但确实在android studio的预览中显示

时间:2017-09-22 22:31:13

标签: java android android-layout android-studio

我正在尝试使用Android Studio和Firebase构建我的第一个Android应用。我把它全部连接起来,它显示数据库中的内容和来自firebase存储的图像就好了。问题是,由于某些原因,我的文字没有显示我添加到xml中。在帖子的底部有3个按钮,"喜欢","评论"和"重新发布"他们有一个图标,然后是旁边的文字。图标显示完美,但文本不会显示。 这是" include_post_actions.xml"问题出在哪里......

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

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_below="@+id/post_action_layout"
    android:layout_above="@+id/include"
    android:layout_width="match_parent"
    android:layout_height="75dp"
    android:layout_weight="1"
    android:gravity="center_vertical">

<LinearLayout
              android:id="@+id/post_action_buttons"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:orientation="horizontal">

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1">
        <com.like.LikeButton
            app:icon_type="heart"
            app:icon_size="18dp"
            android:id="@+id/star_button"
            android:layout_width="18dp"
            android:layout_height="18dp" />
        <TextView
            android:id="@+id/post_likes_count"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="@color/colorBlack"
            android:maxLines="1"
            tools:text="Like" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1">
        <ImageView
        android:id="@+id/post_comment_icon"
        android:layout_width="20dp"
        android:layout_height="20dp"
        android:src="@drawable/ic_question_answer_black_24dp"
        />
        <TextView
            android:id="@+id/post_comments_count"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="@color/colorBlack"
            android:maxLines="1"
            tools:text="Comment" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1">
        <ImageView
            android:id="@+id/post_repost_icon"
            android:layout_width="20dp"
            android:layout_height="20dp"
            android:src="@drawable/ic_autorenew_black_24dp"
            />
        <TextView
            android:id="@+id/post_repost_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center_vertical"
            android:textColor="@color/colorBlack"
            android:maxLines="1"
            tools:text="Repost" />

    </LinearLayout>
    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/post_action_buttons">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginStart="20dp"
            android:gravity="center_vertical"
            tools:text="Likes Count"
            android:id="@+id/like_count_text"
            android:maxLines="1"
            />
    </LinearLayout>
</RelativeLayout>

在预览中,文本显示在图标旁边,但是当我在模拟器上运行它时,只有图标在那里,我无法弄清楚原因。请帮忙。谢谢。 Android Studio中的预览

enter image description here

模拟器中的应用...... enter image description here

4 个答案:

答案 0 :(得分:10)

问题是您使用的是tools:text="Repost"。只显示在预览模式下,您需要使用android:text="Repost"来实际显示它。

tools命名空间仅用于编辑器目的,是一种在不实际设置值的情况下对齐事物的好方法。但是,如果要实际显示文本,则需要使用android命名空间。

答案 1 :(得分:1)

tools属性引用允许您仅为Android Studio中的预览强制执行任何特定属性,以便您可以在编辑器中查看文本。按android:text设置文字会在TextView中对字符串进行硬编码。您也可以在setText对象

上按TextView方法更改文字

答案 2 :(得分:1)

尝试将tools:text="Repost"更改为android:text="Repost"

根据文件:

工具命名空间是Android工具特别认可的命名空间,因此在打包应用程序并且没有运行时开销时,您在tools-namespace中的视图元素上定义的所有属性都将被自动剥离。

这些是在工具中呈现布局时使用的属性,但对运行时没有影响。如果您希望在编辑布局时将样本数据放在文本字段中,但是您不希望这些属性影响正在运行的应用程序,则此功能非常有用。

希望这有帮助!

答案 3 :(得分:-1)

尝试将width属性从match_parents更改为wrap_contents。