我可以强制特定元素在LinearLayout中缩小

时间:2014-12-04 18:19:14

标签: android android-layout

在尝试遵守我公司的设计规范时,我遇到了使用Android中的LinearLayout的一些问题。总体而言,总体目标是在屏幕的左侧和右侧设置按钮,在中间设置一些文本。我能够轻松地完成这项工作: enter image description here

当屏幕不够大以容纳所有文本时,会出现复杂情况。设计规范规定应始终显示整个时间,同时应截断消息文本。为了实现这一点,我创建了两个控件(一个用于消息,一个用于时间)。我设置了消息控件以包装它的内容,期望包装强制内容隐藏自己,如果它超大,但我得到的最终结果与我期望的有点不同:

Faulty Layout

我需要将它显示到时间中显示“AM”并且文本缩写为“约会D ......”以使其全部适合允许的空间。

以下是我正在使用的导致问题的布局:

<LinearLayout
        android:id="@+id/backandlistnavigation_header_phone"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/header_shade">
        <ImageButton
            android:id="@+id/button_backNav"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:src="@drawable/back_arrow"
            android:background="@color/transparent" />
        <Space
            android:layout_width="40dp"
            android:layout_height="match_parent" />
        <LinearLayout
            android:layout_weight="2"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal"
            android:background="@color/transparent">
            <include
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_marginRight="4dp"
                layout="@layout/TopTextViewPhone" />
            <include
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_gravity="center_vertical"
                layout="@layout/TopTextClockPhone" />
        </LinearLayout>
        <ImageButton
            android:id="@+id/button_up"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:src="@drawable/ic_chevronup"
            android:background="@color/transparent" />
        <ImageButton
            android:id="@+id/button_down"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:src="@drawable/ic_chevrondown"
            android:background="@color/transparent" />
    </LinearLayout>

如果有人能指出我正确的方向来解决这个问题,我会非常感激。提前谢谢!

1 个答案:

答案 0 :(得分:2)

也许考虑使用RelativeLayout:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:ellipsize="none"
        android:lines="1"
        android:layout_toLeftOf="@+id/textView1"
        android:text="Really long text that I want to truncate. So, more text here" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="11:18 AM" />

</RelativeLayout>