android scrollview listview显示不全
原来处理方法是重写ListView
import android.content.Context; import android.util.AttributeSet; import android.view.MotionEvent; import android.widget.ListView;public class MyListView extends ListView {public MyListView(Context context) {super(context);// TODO Auto-generated constructor stub }public MyListView(Context context, AttributeSet attrs) { super(context, attrs); } public MyListView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,MeasureSpec.AT_MOST); super.onMeasure(widthMeasureSpec, expandSpec); } @Override public boolean dispatchTouchEvent(MotionEvent ev) { if(ev.getAction() == MotionEvent.ACTION_MOVE){ return true; } return super.dispatchTouchEvent(ev); } }
试了这种方法还是显示不全 总是少二项内容
又使用了
public static void setListViewHeightBasedOnChildren(ListView listView) {// 获取ListView对应的AdapterListAdapter listAdapter = listView.getAdapter();if (listAdapter == null) {return;}int totalHeight = 0;for (int i = 0, len = listAdapter.getCount(); i < len; i++) { // listAdapter.getCount()返回数据项的数目View listItem = listAdapter.getView(i, null, listView);listItem.measure(0, 0); // 计算子项View 的宽高totalHeight += listItem.getMeasuredHeight(); // 统计所有子项的总高度 }ViewGroup.LayoutParams params = listView.getLayoutParams();params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));// listView.getDividerHeight()获取子项间分隔符占用的高度// params.height最后得到整个ListView完整显示需要的高度 listView.setLayoutParams(params);}
View Code
还是一样效果 少二项内容
最后在网上找到有人重写LinearLayout显示列表
import android.content.Context; import android.util.AttributeSet; import android.util.Log; import android.util.TypedValue; import android.view.View; import android.widget.AdapterView.OnItemClickListener; import android.widget.BaseAdapter; import android.widget.LinearLayout;/**** * @author FreePC**/ public class LinearLayoutForListView extends LinearLayout {private BaseAdapter adapter;private OnItemClickListener onItemClickListener;/*** 通过 Java代码 实例化* @param context*/public LinearLayoutForListView(Context context){super(context);//设置LinearLayoutForListView为垂直布局,否者默认为水平布局,容易疏忽导致子项显示不全LinearLayoutForListView.this.setOrientation(LinearLayout.VERTICAL);}/*** 此构造函数可以允许我们通过 XML的方式注册 控件* @param context* @param attrs*/public LinearLayoutForListView(Context context, AttributeSet attrs){super(context, attrs);LinearLayoutForListView.this.setOrientation(LinearLayout.VERTICAL);}/*** 设置适配器* * @param adpater*/public void setAdapter(BaseAdapter adpater){this.adapter = adpater;bindLinearLayout();}/*** 获取适配器Adapter* * @return adapter*/public BaseAdapter getAdpater(){return adapter;}/*** 绑定布局:将每个子项的视图view添加进此线性布局LinearLayout中*/public void bindLinearLayout(){int count = adapter.getCount();for (int i = 0; i < count; i++){View v = adapter.getView(i, null, null);if (i != count - 1){ //添加每项item之间的分割线v = addLine(v);}addView(v, i);}setItemClickListener();Log.v("countTAG", "" + count);}/*** 添加每项item之间的分割线* * @param view* @return*/public View addLine(View view){//分割线viewView lineView = new View(view.getContext());// 将数据从dip(即dp)转换到px,第一参数为数据原单位(此为DIP),第二参数为要转换的数据值float fPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,(float) 0.5, view.getResources().getDisplayMetrics());int iPx = Math.round(fPx);LayoutParams layoutParams = new LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, iPx);lineView.setLayoutParams(layoutParams);lineView.setBackgroundColor(view.getSolidColor());LinearLayout ly = new LinearLayout(view.getContext());ly.setOrientation(LinearLayout.VERTICAL);ly.addView(view);ly.addView(lineView);return ly;}/*** 设置点击子项事件监听对象* @param onItemClickListener*/public void setOnItemClickListener(OnItemClickListener onItemClickListener){this.onItemClickListener = onItemClickListener;setItemClickListener();}/*** 获取点击子项事件监听对象* @return*/public OnItemClickListener getOnItemClickListener(){return onItemClickListen
View Code
这种方法完全可以搞定,在原来开发当中 上面二个方法都可以搞定不知道这次为什么不行
我怀疑是布局问题
<ScrollViewandroid:id="@id/myscrollview"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/v_common_line_color"android:orientation="vertical"android:scrollbars="none" ><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginBottom="8.0dip"android:orientation="vertical" ><FrameLayoutandroid:id="@id/frame_layout"android:layout_width="match_parent"android:layout_height="wrap_content" ><ImageViewandroid:layout_width="match_parent"android:layout_height="200.0dip"android:background="@drawable/home_cover2"android:scaleType="centerCrop" /><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="bottom|left"android:layout_marginBottom="8.0dip"android:layout_marginLeft="16.0dip" ><TextViewandroid:id="@id/txt_city"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="@color/white"android:textSize="@dimen/font18" /><TextViewandroid:id="@id/txt_weather"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@id/txt_city"android:layout_gravity="bottom|left"android:textColor="@color/white"android:textSize="@dimen/font18" /></RelativeLayout></FrameLayout><LinearLayoutandroid:id="@id/linear_title"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/frame_layout"android:layout_marginTop="8.0dp"android:background="@drawable/layout_background_corners"android:orientation="vertical"android:padding="8.0dip" ><TextViewandroid:id="@id/txtTitle"android:layout_width="match_parent"android:layout_height="wrap_content"android:gravity="center_vertical"android:textColor="@color/black2"android:textSize="@dimen/font16" /></LinearLayout><ListViewandroid:id="@id/liv_trip"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@id/linear_title"android:layout_marginBottom="8.0dip"android:layout_marginTop="8.0dip"android:divider="@color/cccccc"android:dividerHeight="0px"android:fadingEdge="none" /></RelativeLayout></ScrollView>
View Code
item布局是
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical" android:background="@color/v_common_line_color"></LinearLayout>
View Code
转载于:https://www.cnblogs.com/freexiaoyu/p/4089755.html
android scrollview listview显示不全相关推荐
- Android 自定义 ListView 显示网络上 JSON 格式歌曲列表
本文内容 环境 项目结构 演示自定义 ListView 显示网络上 JSON 歌曲列表 参考资料 本文最开始看的是一个国人翻译的文章,没有源代码可下载,根据文中提供的代码片段,自己新建的项目(比较可恶 ...
- android圆形图标显示不全,android 桌面图标显示不全
android 图标显示不全的现象,分析代码和配置文件如下操作可以解决问题 Workspace.java 文件 cellCountX = 1; while (CellLayout.widthInPor ...
- 解决ListView显示不全、滑动冲突问题
在开发中,ListView是使用得最多的控件,有时候会遇到ListView因为各种原因引起的数据显示不全,例如,嵌套了ScrollView等.这个解决的办法很多,这里记录一下我自己用过的方法, ...
- android自定义listview 显示数组,android中使用arrayadapter类的自定义列表视图
从https://groups.google.com/forum/?fromgroups#!topic/android-developers/No0LrgJ6q2M绘制 public class Ma ...
- android log长字符串显示不全,如何解决Android的Log显示不全的问题
在做Android开发过程中,我们常常会使用系统提供的日志打印功能选择性地在Logcat控制台上打印一些数据信息,调试跟踪应用运行的一个状态,常见如客户端与服务器通讯过程中涉及到的URL链接.requ ...
- Android seekbar滑块显示不全问题解决
本来想实现下图效果: 可实际自己写的确实下图的效果(注意红框位置): 解决方法: 在SeekBar中添加下面属性,值必须设置0dp android:thumbOffset="0dp" ...
- ViewPager 在 ScrollView 中显示不全的解决方法
比如我这里 <android.support.v4.view.ViewPager android:id="@+id/viewPager2&quo ...
- android桌面壁纸显示不全屏显示,手机壁纸怎么全屏 全屏显示手机壁纸方法
使用安卓手机的朋友都知道,安卓手机更换的壁纸是一个比较大的壁纸,对于一张背景壁纸图片我们手机界面看到的只有一部分,只有通过左右划屏才可以变换的看完整张桌面背面图片,那么如何在手机界面中看到一个完整的桌 ...
- android edittext字数显示不全,Android的EditText字数检测和限制解决办法
Android的EditText字数检测和限制解决办法 控件EditText在Android布局中经常用到,对EditText中输入的内容也经常需要进行限制,我们可以通过TextWatcher去观察输 ...
最新文章
- 《权力的游戏》最终季上线!谁是你最喜爱的演员?这里有一份Python教程 | 附源码...
- 无法在指定计算机上定位,Win10电脑无法打开定位功能时启动GeolocationService服务提示找不到文件怎么办...
- asp.net select Case条件语句的使用方法
- Struts2教程1:第一个Struts2程序
- stm32f4之GPIO
- wxWidgets:实时传输时间RTTI
- 比MySQL快6倍 深度解析国内首个云原生数据库POLARDB的“王者荣耀”
- 运用递归将两个链表进行连接
- React开发(189):ant design textarea允许清除allowClear
- 收藏 | 三张图读懂机器学习:基本概念、五大流派与九种常见算法
- MYSQL中取当前周/月/季/年的第一天与最后一天
- 列表查询组件代码, 简化拼接条件SQL语句的麻烦
- python中new方法详解及_Python中__new__与__init__方法的区别详解
- Android使用本地广播
- Matlab图像处理系列3———空间域锐化滤波器
- m3u8格式转换器android,m3u8转换格式mp4软件下载-m3u8转换格式 安卓版v2.7.0-PC6安卓网...
- 聊聊图标和MBE图标
- 外贸建站需要注意的事项
- 服务器销售术语,服务器术语大全
- html5语文答题制作,语文万能答题模板
热门文章
- 牛客国庆集训派对Day3: I. Metropolis(dijkstra)
- tf代码之tf.nn.conv2d_transpose
- 利用matlab自带函数graycoprops 实现基于共生矩阵的遥感图像纹理特征分析
- Java 图片验证码的实现和模拟简单的登录
- [paper reading] ResNet
- python机器学习库教程——结巴中文分词
- Quartus17打开RTL视图
- c++中获取蓝图组件_Vue组件通信方式居然有这么多?你了解几种
- 浏览器的DNS缓存查看和清除
- Mysql事物隔离级别