不知道这样的布局该怎么描述,标题也是乱取的。。直接上图吧

最近遇到了这样要求的布局:

1、上图中的“标题”长度不定,“状态”标签可能有多个并紧跟在标题右边,“属性”一直居右显示;

2、当“标题”过长,一行显示不下时,“标题”换行显示,但不能挤掉“状态”和“属性”。

刚开始用了LinearLayout和RelativeLayout的多层嵌套总算是强行实现,但是嵌套太深了,而且代码看着也相当复杂,所以修改为用TableLayout,利用shrinkColumns和stretchColumns保证跟随的视图不被挤掉。

当然还有一个问题没解决:固定居右的“属性”一直没能放进TableLayout里,尝试设置“属性”为 stretchColumns + match_parent + gravity: right,放到TableRow的最后,但是没有效果,所以这里才套了层RelativeLayout,如果有办法能把RelativeLayout这层都省去,麻烦大家告诉我下~

 <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"> <TableLayout
android:id="@+id/table"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_toLeftOf="@+id/txvCreateTime"
android:shrinkColumns="0"
android:stretchColumns="1|2"> <TableRow android:gravity="center_vertical"> <TextView
android:id="@+id/txvTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ellipsize="end"
android:maxLines="2"
android:text="居左居左居左居左居左居左"
android:textColor="@android:color/black"
android:textSize="@dimen/dimens_16_sp"
android:textStyle="bold" /> <TextView
android:id="@+id/txvState1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dimens_5_dp"
android:background="@drawable/layout_bg_orange"
android:paddingBottom="@dimen/dimens_2_dp"
android:paddingLeft="@dimen/dimens_5_dp"
android:paddingRight="@dimen/dimens_5_dp"
android:paddingTop="@dimen/dimens_2_dp"
android:singleLine="true"
android:text="跟随"
android:textColor="@android:color/white"
android:textSize="@dimen/dimens_12_sp" /> <TextView
android:id="@+id/txvState2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dimens_5_dp"
android:background="@drawable/layout_bg_orange"
android:paddingBottom="@dimen/dimens_2_dp"
android:paddingLeft="@dimen/dimens_5_dp"
android:paddingRight="@dimen/dimens_5_dp"
android:paddingTop="@dimen/dimens_2_dp"
android:singleLine="true"
android:text="跟随"
android:textColor="@android:color/white"
android:textSize="@dimen/dimens_12_sp" />
</TableRow>
</TableLayout> <TextView
android:id="@+id/txvCreateTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="@dimen/dimens_5_dp"
android:gravity="center"
android:text="居右"
android:textColor="#999999"
android:textSize="@dimen/dimens_14_sp" />
</RelativeLayout>

阅读原文

Android布局:宽度适应的横向跟随,防止挤掉重要视图的更多相关文章

  1. Android布局优化:include 、merge、ViewStub的详细总结

    版权声明:本文出自汪磊的博客,未经作者允许禁止转载. 本篇博客主要是对上篇博客的补充Android性能优化之UI渲染性能优化, 没有什么新东西,觉得应该是都掌握的玩意,写出来也只是自己做个小小的总结. ...

  2. Android布局中的空格以及占一个汉字宽度的空格的实现

    在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格:  窄空格:  一个汉字宽度的空格:   [用两个空格(  )占一个汉字的宽度时,两个空格比 ...

  3. Android布局中的空格以及占一个汉字宽度的空格,实现不同汉字字数对齐

    前言 在Android布局中进行使用到空格,以便实现文字的对齐.那么在Android中如何表示一个空格呢? 空格: (普通的英文半角空格但不换行) 窄空格:   (中文全角空格 (一个中文宽度))   ...

  4. Android 布局简要范例

    Android的布局决定着实际的UI界面呈现情况,正是这些UI界面的组合与千变万化,才呈现出了各式各样的风格. 而这些基础的布局框架结构很重要,需要玩的很熟悉.我将以前参考的部分代码示例,所做的相关实 ...

  5. Android 布局管理器

    为了更好地管理Android应用程序的用户界面组件,Android它提供了一个布局管理.通过使用布局管理,Android具有良好的平台无关的图形用户界面应用程序. 平时,推荐布局管理器来管理分布式组件 ...

  6. Android布局及属性归总(查询用)

    常见布局 LinearLayout    线性布局        子元素任意,组织成一个单一的水平或垂直行,默认为水平方向TableLayout    表格布局        子元素为<Tabl ...

  7. [转]HorizontalScrollView介绍--支持水平滚动的android布局容器

    类概述 用 于布局的容器,可以放置让用户使用滚动条查看的视图层次结构,允许视图结构比手机的屏幕大.HorizontalScrollView是一种 FrameLayout(框架布局),其子项被滚动查看时 ...

  8. Android 布局之TableLayout

    Android 布局之TableLayout 1 TableLayout简介 TableLayout是表格布局.TableLayout 可设置的属性包括全局属性及单元格属性. 1.1 全局属性 有以下 ...

  9. Android 布局之FrameLayout

    Android 布局之FrameLayout 1 FrameLayout简介 对于FrameLayout,官方介绍是:FrameLayout is designed to block out an a ...

随机推荐

  1. Koa源码分析(一) -- generator

    Abstract 本系列是关于Koa框架的文章,目前关注版本是Koa v1.主要分为以下几个方面: 1. Koa源码分析(一) -- generator 2. Koa源码分析(二) -- co的实现 ...

  2. MySQL zip版本安装

    一直以来都习惯了使用MySQL安装文件(.exe),今天下载了一个.zip版本的MySQL,安装过程中遇到了一些问题,如下: 1.在MySQL官网上(http://dev.mysql.com/down ...

  3. JupyterLab绘制:柱状图,饼状图,直方图,散点图,折线图

    JupyterLab绘图 喜欢python的同学,可以到 https://v3u.cn/(刘悦的技术博客) 里面去看看,爬虫,数据库,flask,Django,机器学习,前端知识点,JavaScrip ...

  4. 将n个东西分成n1,n2,n3,n4,....nr 共 r组分给r个人有多少种分法。

    (n!/(n1! *n2! *n3!..nr!) )   * r!/( 同数量组A的数量! 同数量组B的数量!....) 比方20个东西分成2,2,,2,2   3,3,3,3 8组分给8个人有多少种 ...

  5. 数据库的Connection、Cursor两大对象

    Python 数据库图解流程 Connection.Cursor比喻 Connection()的参数列表 host,连接的数据库服务器主机名,默认为本地主机(localhost). user,连接数据 ...

  6. pageHelper的使用步骤,省略sql语句中的limit

    1.引架包.注意版本问题 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId& ...

  7. Open/Close Port in Centos

    1. Show status /etc/init.d/iptables status 2.Set Port iptables -I INPUT -p tcp --dport 80 -j ACCEPT ...

  8. 【ProtoBuffer】windows上安装ProtoBuffer3.1.0 (附已编译资源)

    ------- 17.9.17更新  --- 以下这些方法都是扯淡,对我的机器不适用,我后来花了最后成功安装并亲测可用的方法不是靠vs编过的,vs生成的库引入后函数全部报undefine refere ...

  9. gogs 安装

    docker 安装gogs 准备工作 安装一个mysql数据库,创建一个数据库 gogs,字符集为utf-8 查找gogs 镜像 docker search gogs 拉取镜像到本地 docker p ...

  10. Web browser的发展史

        浏览器是个显示网页伺服器或档案系统内的HTML文件,并让用户与此些文件互动的一种软件.个人电脑上常见的网页浏览器包括微软的Internet Explorer.Moailla的Firefox.O ...