项目中要求显示竖线,并且竖线高度不确定,竖线的高度要随着内容的变化而变化。不能使用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竖线高度问题解决的方式少之又少。希望这个方法能够帮助到您,有什么疑问可以在下面的评论区留言,我能及时看到。但是如果您是几年后看到的这篇文章,那我就不能确保能够及时回复了。

最新文章

  1. C# 开发windows服务的一些心得
  2. 表单元素的submit()方法和onsubmit事件
  3. JS中的柯里化与反柯里化
  4. PHP 实现数学问题:组合
  5. MySQL的热备percona-xtrabackup、innobackupex的安装方法
  6. 285. Inorder Successor in BST
  7. android控件上面实现提醒信息
  8. mobilebone.js 移动web APP单页切换骨架
  9. javascript对象(1)
  10. 201521123044 《Java程序设计》第8周学习总结
  11. 创建文件DSN
  12. 老男孩Python全栈学习 S9 日常作业 004
  13. IOS 视频.图片上传服务器
  14. django 路由系统,数据库操作
  15. CentOS安装redis-audit 但执行时出错未解决 记录一下安装过程
  16. Qt编写echart仪表盘JS交互程序支持webkit和webengine(开源)
  17. 基于openresty的https配置实践
  18. Hibernate的七种映射关系之七种关联映射(二)
  19. FasfDFS intall nginx with image filter
  20. loadNibNamed:(NSString *)name owner:(nullable id)owner options:(nullable NSDictionary *)options用法

热门文章

  1. Java异常处理——如何跟踪异常的传播路径?
  2. java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) excel 工具框架
  3. 【Appium自学】Android studio安装与配置(转)
  4. py3,休息时间玩点小把戏
  5. (24/24) webpack小案例--自己动手用webpack构建一个React的开发环境
  6. 基础Gan代码解析
  7. 1. [Vue warn]: Missing required prop: &quot;value&quot;
  8. idea搭建ssm框架
  9. Zabbix客户端日志出现(Not all processes could be identified, 解决
  10. SQL Server并发操作单个表时发生在page页面级的死锁