Android中竖线随内容高度变化而变化的问题和解决办法
项目中要求显示竖线,并且竖线高度不确定,竖线的高度要随着内容的变化而变化。不能使用match_parent 充满,也不能在布局中写死,此时使用
android:layout_height="wrap_content"
将不起作用,反而会充满整个屏幕。我在网上搜索了一番,关于这个问题只找到了这样一篇文章 https://blog.csdn.net/gufengpiaoyi/article/details/50129355 ,但是并没有解决实际遇到的问题。经过几天之后想到了一个办法解决了使用<View>作竖线高度动态变化的问题。
解决办法:在竖线的外层套一个父布局RelativeLayout,并且随竖线一起变化的组件同样嵌套在RelativeLayout中,这是最关键的一步。将竖线<View>任意赋值,然后利用相对布局的特性layout_alignBottom和layout_alignTop 来强行设定竖线的上限和下限,这样就解决了高度动态变化的问题。具体使用的实例如下。
1、静态:XML中使用
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout
android:id="@+id/total_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorWhite"> <View
android:id="@+id/verticaline"
android:layout_width="1dp"
android:layout_height="@dimen/y10"
android:layout_marginLeft="@dimen/x38"
android:layout_alignBottom="@+id/web"
android:layout_alignParentTop="true"
android:background="@color/colorDivide"/> <TextView
android:id="@+id/tv_conversationContent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/x72"
android:layout_marginTop="@dimen/y24"
android:layout_marginRight="@dimen/x88"
android:textColor="#464646"
android:textSize="@dimen/y38" /> <WebView
android:id="@+id/web"
android:layout_width="wrap_content"
android:layout_height="wrap_content
android:layout_below="@+id/tv_conversationContent"
android:layout_marginRight="@dimen/x88"
android:layout_marginLeft="@dimen/x60"
android:layout_marginTop="@dimen/y24" /> </RelativeLayout>
</layout>
上面的布局是Recyclerview的item的布局,在布局中id为verticaline 的View是要显示的竖线,TextView和WebView负责显示从服务器获取的数据,数据内容、高度不确定。这里要求竖线的高度随着TextView和WebView的内容高度变化而变化。所以这里竖线设置的下限是WebView底部,通过layout_alignParentTop的方式让竖线的上限直接置顶。具体请看上述布局中斜体加粗部分。
2、java代码中动态设置
RelativeLayout.LayoutParams layoutParams= (RelativeLayout.LayoutParams) binding.verticaline.getLayoutParams();
layoutParams.addRule(RelativeLayout.ALIGN_BOTTOM,binding.web.getId());
其中binding.web代表这上面xml中的WebView,binding.verticaline代表上面xml中的竖线View。通过这样一个办法的设置就限定了竖线高度View的下限是web为底,与上面xml中竖线的效果相同。同理,通过这样的代码还可以设定竖线高度的上限,具体请参照addRule的方法,这个在网上很容易就能查到。
结束语:网上关于View竖线高度问题解决的方式少之又少。希望这个方法能够帮助到您,有什么疑问可以在下面的评论区留言,我能及时看到。但是如果您是几年后看到的这篇文章,那我就不能确保能够及时回复了。
最新文章
- C# 开发windows服务的一些心得
- 表单元素的submit()方法和onsubmit事件
- JS中的柯里化与反柯里化
- PHP 实现数学问题:组合
- MySQL的热备percona-xtrabackup、innobackupex的安装方法
- 285.	Inorder Successor in BST
- android控件上面实现提醒信息
- mobilebone.js 移动web APP单页切换骨架
- javascript对象(1)
- 201521123044 《Java程序设计》第8周学习总结
- 创建文件DSN
- 老男孩Python全栈学习 S9 日常作业 004
- IOS 视频.图片上传服务器
- django 路由系统,数据库操作
- CentOS安装redis-audit 但执行时出错未解决 记录一下安装过程
- Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
- 基于openresty的https配置实践
- Hibernate的七种映射关系之七种关联映射(二)
- FasfDFS intall nginx with image filter
- loadNibNamed:(NSString *)name owner:(nullable id)owner options:(nullable NSDictionary *)options用法
热门文章
- Java异常处理——如何跟踪异常的传播路径?
- java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架
- 【Appium自学】Android studio安装与配置(转)
- py3,休息时间玩点小把戏
- (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
- 基础Gan代码解析
- 1. [Vue warn]: Missing required prop: ";value";
- idea搭建ssm框架
- Zabbix客户端日志出现(Not all processes could be identified, 解决
- SQL Server并发操作单个表时发生在page页面级的死锁