当前位置: 首页 > news >正文

TextView把其它控件挤出屏幕的处理办法

1.如果TextView后面的控件是紧挨着TextView的,可以给TextView添加maxWidth限制其最大长度

上有问题的布局代码

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><import type="android.text.TextUtils" /><variablename="appCardEntity"type="cn.com.westone.cxjr.cxsdk.model.AppCardEntity" /><variablename="adapter"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardKeyDataType.AppCardKeyDataAdapter" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/shape_search_bg"android:orientation="vertical"android:paddingHorizontal="16dp"android:paddingVertical="8dp"><LinearLayoutandroid:id="@+id/ll_title"android:layout_width="match_parent"android:layout_height="32dp"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:id="@+id/iv_icon"android:layout_width="16dp"android:layout_height="16dp"android:padding="2dp"android:src="@drawable/ic_placeholder" /><com.westone.cx.commonsdk.uikit.scaleView.CXScaleTextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:gravity="center_horizontal"android:maxLines="1"android:text="@{TextUtils.isEmpty(appCardEntity.cardTitle)?appCardEntity.appName:appCardEntity.cardTitle}"android:textColor="@color/cx_first_level_text_color"android:textSize="@dimen/store_font_12" /><ImageViewandroid:layout_width="16dp"android:layout_height="16dp"android:background="@drawable/arrow_right_icon"android:padding="2dp" /></LinearLayout><cn.com.westone.cx.platform.fragment.sub.component.NonScrollGridViewandroid:id="@+id/gv_data"adapter="@{adapter}"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingVertical="16dp" /></LinearLayout>
</layout>

有问题时展示效果图

解决方案布局代码

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><import type="android.text.TextUtils" /><variablename="appCardEntity"type="cn.com.westone.cxjr.cxsdk.model.AppCardEntity" /><variablename="adapter"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardKeyDataType.AppCardKeyDataAdapter" /></data><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/shape_search_bg"android:orientation="vertical"android:paddingHorizontal="16dp"android:paddingVertical="8dp"><LinearLayoutandroid:id="@+id/ll_title"android:layout_width="match_parent"android:layout_height="32dp"android:gravity="center_vertical"android:orientation="horizontal"><ImageViewandroid:id="@+id/iv_icon"android:layout_width="16dp"android:layout_height="16dp"android:padding="2dp"android:src="@drawable/ic_placeholder" /><com.westone.cx.commonsdk.uikit.scaleView.CXScaleTextViewandroid:id="@+id/tv_title"android:layout_width="wrap_content"android:layout_height="wrap_content"android:ellipsize="end"android:gravity="center_horizontal"android:maxWidth="200dp" //关键代码android:maxLines="1"android:text="@{TextUtils.isEmpty(appCardEntity.cardTitle)?appCardEntity.appName:appCardEntity.cardTitle}"android:textColor="@color/cx_first_level_text_color"android:textSize="@dimen/store_font_12" /><ImageViewandroid:layout_width="16dp"android:layout_height="16dp"android:background="@drawable/arrow_right_icon"android:padding="2dp" /></LinearLayout><cn.com.westone.cx.platform.fragment.sub.component.NonScrollGridViewandroid:id="@+id/gv_data"adapter="@{adapter}"android:layout_width="match_parent"android:layout_height="wrap_content"android:paddingVertical="16dp" /></LinearLayout>
</layout>

解决完成后效果图

2.TextView控件和其它控件分别在两端展示时,TextView把其它控件挤出屏幕

上有问题的布局代码

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><import type="android.view.View" /><variablename="appEntity"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardListDataType.AppCardListDataItemEntity" /><variablename="adapter"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardListDataType.AppCardListDataTypeAdapter" /></data><RelativeLayoutandroid:id="@+id/ll_item"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"android:minHeight="32dp"><TextViewandroid:id="@+id/tv_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:ellipsize="end"android:gravity="left"android:maxLines="1"android:text="@{appEntity.text}"android:textColor="@color/cx_first_level_text_color"android:textSize="@dimen/store_font_12" /><TextViewandroid:id="@+id/tv_time"android:layout_width="65dp"android:layout_height="wrap_content"android:gravity="right"android:layout_alignParentRight="true"android:maxLines="1"android:text="@{appEntity.formatTime()}"android:textColor="@color/cx_second_level_text_color"android:textSize="@dimen/store_font_12"android:visibility="@{adapter.isHideTimeStamp?View.GONE:View.VISIBLE}" /></RelativeLayout>
</layout>

有问题时展示效果图

使用LinearLayout与weight属性解决方案布局代码

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"><data><import type="android.view.View" /><variablename="appEntity"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardListDataType.AppCardListDataItemEntity" /><variablename="adapter"type="cn.com.westone.cx.platform.fragment.sub.card.AppCardListDataType.AppCardListDataTypeAdapter" /></data><LinearLayoutandroid:id="@+id/ll_item"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"android:minHeight="32dp"><TextViewandroid:id="@+id/tv_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"android:ellipsize="end"android:gravity="left"android:maxLines="1"android:text="@{appEntity.text}"android:textColor="@color/cx_first_level_text_color"android:textSize="@dimen/store_font_12" /><TextViewandroid:id="@+id/tv_time"android:layout_width="65dp"android:layout_height="wrap_content"android:gravity="right"android:maxLines="1"android:text="@{appEntity.formatTime()}"android:textColor="@color/cx_second_level_text_color"android:textSize="@dimen/store_font_12"android:visibility="@{adapter.isHideTimeStamp?View.GONE:View.VISIBLE}" /></LinearLayout>
</layout>

解决后效果图

原理是:LinearLayout里添加weight属性的控件会填满其它控件绘制完后剩余的全部空间。

仅以此记录一天的解决之路

http://www.lryc.cn/news/457976.html

相关文章:

  • 长度为 K 的重复字符子串数目
  • html+css+js实现轮播图
  • Boost集成模型异同
  • 【系统架构设计师】案例专题四:嵌入式系统考点梳理
  • Ngin入门套餐
  • 使用linux编译main.cpp文件
  • 服务器部署‌Traefik 实现子级域名路由服务(对外子域名80,路由对内大端口)
  • @RequestParam @PathVirable @RequestBody @ApiParam的区别
  • Vulnhub靶场案例渗透[5]- DC4
  • http协议概述与状态码
  • Golang 进阶5—— 反射
  • react 封装防抖
  • Java项目-----图形验证码登陆实现
  • 【网络代理模块】反向代理(上)
  • 2-112基于matlab的协同干扰功率分配模型
  • 数据结构之——二叉树
  • 多层感知机(MLP)实现考勤预测二分类任务(sklearn)
  • 文件与目录的基本操作
  • Python入门笔记(三)
  • PostgreSQL 任意命令执行漏洞(CVE-2019-9193)
  • 使用tgz包下载安装clickhouse低版本
  • 外包功能测试干了6个月,技术退步太明显了。。。。。
  • 动态规划和贪心算法
  • python爬虫--tx动漫完整信息抓取
  • 《使用Java做爬虫和使用python做爬虫哪个好》
  • 如果我想开发一个APP,需要准备哪些材料呢
  • 告别论文初稿焦虑!ChatGPT让你轻松完成写作!
  • mongodb 数据迁移,亲测成功!
  • 如何使用ssm实现疫情居家办公OA系统
  • 深入了解 MySQL 中的 JSON_CONTAINS