RelativeLayout里面的Android TextView不能正常运行

时间:2017-11-13 08:16:09

标签: android android-layout textview android-relativelayout

所以我有一个包含几个小部件的自定义标题视图。我的想法是让一个框架布局与ImageView(图标)对齐的父开始和ImageButton(菜单)对齐的父端。此外,ImageView右侧的TextView(标题)..应始终可见。

在ImageView(图标)的右侧,应该有一个TextView(标题),其文本应根据其右侧其他小部件的可见性进行扩展。

所以从左到右的顺序如下:ImageView(图标) - TextView(标题) - ImageView(未读消息) - ImageView(电池) - ImageButton(菜单)

问题是,TextView中的文本位于右侧的小部件后面,就像在此图像上可见:

这是我的xml预览:

Here is my xml preview

这是实际的xml:

<RelativeLayout 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="58dp"
android:background="@color/view_controller_header">

<FrameLayout
    android:id="@+id/frame"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentStart="true"
    android:layout_centerInParent="true"
    android:layout_gravity="center"
    android:layout_margin="10dp">

    <ImageView
        android:id="@+id/imageViewIC"
        android:layout_width="@dimen/view_controller_header_icon_width"
        android:layout_height="@dimen/view_controller_header_icon_height"
        android:layout_gravity="center" />

    <TextView
        android:id="@+id/textViewKK"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:focusable="false"
        android:gravity="center"
        android:padding="10dp"
        android:shadowColor="@color/text_shadow"
        android:shadowDx="-1"
        android:shadowDy="-1"
        android:shadowRadius="1"
        android:textColor="@color/main_text_color"
        android:textSize="@dimen/view_controller_header_kk_texSize"
        android:visibility="gone" />

    <ProgressBar
        android:id="@+id/progressBarVC"
        style="?android:attr/progressBarStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:visibility="gone" />

</FrameLayout>

<TextView
    android:id="@+id/textViewDName"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_gravity="center"
    android:layout_marginRight="@dimen/view_controller_header_margin2"
    android:layout_toRightOf="@id/frame"
    android:ellipsize="end"
    android:fontFamily="sans-serif"
    android:gravity="center|left"
    android:maxLines="2"
    android:textColor="@color/main_text_color"
    android:textSize="17sp"
    tools:text="This is the text that is too long .........." />


<ImageButton
    android:id="@+id/imgSubMenu"
    android:layout_width="50dp"
    android:layout_height="match_parent"
    android:layout_alignParentEnd="true"
    android:layout_gravity="center"
    android:background="?android:selectableItemBackground"
    android:scaleType="center"
    android:src="@drawable/ic_more_vert_white_24dp" />

<LinearLayout
    android:id="@+id/bat"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_toStartOf="@id/imgSubMenu"
    android:gravity="center"
    android:orientation="horizontal">

    <ImageView
        android:id="@+id/imageViewBattery"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="3dp"
        android:layout_weight="1"
        android:scaleType="centerInside"
        android:visibility="visible"
        app:srcCompat="@drawable/ic_battery_full" />

    <TextView
        android:id="@+id/textViewBattery"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:visibility="visible"
        tools:text="100%" />

</LinearLayout>

<TextView
    android:id="@+id/unreadMessages"
    android:layout_width="22dp"
    android:layout_height="22dp"
    android:layout_centerInParent="true"
    android:layout_toStartOf="@id/bat"
    android:background="@color/color_widget_security_back_red"
    android:gravity="center"
    android:textStyle="bold"
    android:visibility="visible"
    tools:text="2" />

任何想法,为什么这个文本落后于那些小部件?如果可以看到batery和未读消息,我希望它能够调整大小,比如它分成两行而不是一行,或者显示......如果它太长了......

1 个答案:

答案 0 :(得分:0)

可能您忘记添加一个属性文本,如下所示:

<强>机器人:layout_toLeftOf

<a href="{{ route($group.'.create')}}" > Add new </a>

根据您的要求,您需要从右到左显示文本图标和从左到右的菜单图标,但是您需要添加一个相对引用,而不是在左侧,因此它在右侧菜单图标上重叠