我正在尝试使用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中的预览
答案 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。