androidlistview怎么调整item高度

androidlistview怎么调整item高度,第1张

想要实现以下过程:点击listview 中的item选项,这时d出note 提示 item的内容(在数据库中只添加了TEXT 一种类型),并给出 item选项在数据库中的_ID 值,最好举例哈

 注意,如果listitem里面有textview的话,就当一行处理进行截取数字。

public static void setListViewHeightBasedOnChildren(ListView listView) {

// 获取ListView对应的Adapter WeiboContentAdapter listAdapter = (WeiboContentAdapter) listViewgetAdapter(); if (listAdapter == null) { return; } Paint mPaint = new Paint(PaintANTI_ALIAS_FLAG); mPaintsetTextAlign(AlignLEFT); LinearLayout listItem; TextView tvContent; int totalHeight = 0; int lineCount = 0; for (int i = 0, len = listAdaptergetCount(); i < len; i++) { // listAdaptergetCount()返回数据项的数目 listItem = (LinearLayout)listAdaptergetView(i, null, listView); tvContent = (TextView) listItemfindViewById(Ridtv_weibo_detail_content); lineCount = getLineCount(mPaint, ((SpannedString) tvContentgetText())toString()); tvContentmeasure(0, 0); // 计算子项View 的宽高 totalHeight += tvContentgetMeasuredHeight()lineCount + 60; // 统计所有子项的总高度 } ViewGroupLayoutParams params = listViewgetLayoutParams(); paramsheight = totalHeight + (listViewgetDividerHeight() (listAdaptergetCount() - 1)) ; // listViewgetDividerHeight()获取子项间分隔符占用的高度 // paramsheight最后得到整个ListView完整显示需要的高度 listViewsetLayoutParams(params); }

private static int getLineCount(Paint mPaint, String content) { int index; int count = 0; while(contentlength() > 0){ index = mPaintbreakText(content, true, ResolutionUtilgetWPx()/2, null); content = contentsubstring(index); count++; } return count; }

/ 动态改变listView的高度 @param pull / private void setPullLvHeight(ListView pull){ int totalHeight = 0; for (int i = 0, len = adaptergetCount(); i < len; i++) { //listAdaptergetCount()返回数据项的数目 View listItem = adaptergetView(i, null, pull); listItemmeasure(0, 0); //计算子项View 的宽高 totalHeight += listItemgetMeasuredHeight(); //统计所有子项的总高度 } ViewGroupLayoutParams params = pullgetLayoutParams(); paramsheight = totalHeight + (pullgetDividerHeight() (pullgetCount() - 1)); pullsetLayoutParams(params); }

在LinearLayout中layout_weight是指控件使用父容器控件后剩余的控件,所以要想实现您需要的2/3的需求,则需要将两个LinearLayout的高度属性都设置为0dip,然后使用2:1的比重才能起作用。

使用ScrollView作为最外层滑动控件来嵌套其他滑动控件,会有莫名其妙的位移BUG,因此应该换一种滑动控件作为最外层的容器。两个滑动控件嵌套,内部滑动控件的高度默认会是0,除非你用定值设置,如果不想用定值设置,那么就需要自定义这个滑动控件,手动的计算该滑动控件。ViewPager嵌套ListView会有数据少的ListView底部出现一大片的空白,因此这里我们也需要自定义ViewPager来动态计算当前的ListView的高度。ListView作为顶层滑动控件的子滑动控件ViewPager的子滑动控件,高度默认当然也是0,这里我们也需要进行自定义ListView计算高度。

android:orientation="horizontal"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:minHeight="100dp"

>

<TextView

android:id="@+id/textView01"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:text="@string/hello"

/>

</LinearLayout>

item的布局高度match_parent,ViewPager 高度 match_parent,适配器的

inflaterinflate( );中间的ViewGroup root 不能写null要写父控件,最后一个参数也写true

ListView是一个用来纵向显示条目的视图,这些条目内容来自于与该ListView相关联的ListAdapter

android:divider//在列表条目之间显示的drawable或color

android:dividerHeight//用来指定divider的高度

android:entries//构成ListView的数组资源的引用。对于某些固定的资源,这个属性提供了比在程序中添加资源更加简便的方式

android:footerDividersEnabled//当设为false时,ListView将不会在各个footer之间绘制divider默认为true。

android:headerDividersEnabled//当设为false时,ListView将不会在各个header之间绘制divider默认为true

android:cacheColorHint// 表明这个列表的背景始终以单一、固定的颜色绘制,可以优化绘制过程。

android:choiceMode//为视图指定选择的行为。可选的类型有:none、singleChoice、multipleChoice、multipleChoiceModal。

android:drawSelectorOnTop// 若设为true,选择器将绘制在选中条目的上层。默认为false。

android:fastScrollEnabled// 设置是否允许使用快速滚动滑块。

android:addStatesFromChildren// 设置这个ViewGroup的drawable状态是否包括子View的状态。若设为true,当子View如EditText或Button获得焦点时,整个ViewGroup也会获得焦点。

android:alwaysDrawnWithCache// 设置ViewGroup在绘制子View时是否一直使用绘图缓存。默认为true。

android:animationCache// 设置布局在绘制动画效果时是否为其子View创建绘图缓存。若设为true,将会消耗更多的内存,要求持续时间更久的初始化过程,但表现更好。默认为true。

android:clipChildren// 设置子View是否受限于在自己的边界内绘制。若设为false,当子View所占用的空间大于边界时可以绘制在边界外。默认为true。

android:clipToPadding//定义布局间是否有间距。默认为true。

android:descendantFocusability// 定义当寻找一个焦点View的时候,ViewGroup与其子View之间的关系。可选项为:

//(1)beforeDescendants ViewGroup会比其子View更先获得焦点;

//(2)afterDescendants 只有当无子View想要获取焦点时,ViewGroup才会获取焦点;

//(3)blockDescendants ViewGroup会阻止子View获取焦点

android:layoutAnimation//定义当ViewGroup第一次展开时的动画效果,也可人为地在第一次展开后调用。

android:persistentDrawingCache// 定义绘图缓存的持久性。有如下可选项:

//(1)none 当使用过后不保留绘图缓存

//(2)animation 在layout animation之后保留绘图缓存

//(3)scrolling 在Scroll *** 作后保留绘图缓存

//(4)all always保留绘图缓存

android:listSelector// 设置选中项显示的可绘制对象,可以是或者颜色属性。

android:scrollingCache// 设置在滚动时是否使用绘制缓存。若设为true,则将使滚动表现更快速,但会占用更内存。默认为true。

android:smoothScrollbar// 为真时,列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法。默认该属性为真,如果你的适配器需要绘制可变高的条目,他应该设为假。当该属性为真时,你在适配器在显示变高条目时,滚动条的把手会在滚动的过程中改变大小。当设为假时,列表只使用适配器中的条目数和屏幕上的可见条目来决定滚动条的属性。

android:stackFromBottom// 设置GridView和ListView是否将内容从底部开始显示。

android:textFilterEnabled// 当设为真时,列表会将结果过滤为用户类型。前提是这个列表的Adapter必须支持Filterable接口。

android:transcriptMode//设置列表的transcriptMode有如下选项可选:

//(1)disabled 禁用TranscriptMode,也是默认值;

//(2)normal 当新条目添加进列表中并且已经准备好显示的时候,列表会自动滑动到底部以显示最新条目;

//(3)alwaysScroll 列表会自动滑动到底部,无论新条目是否已经准备好显示

目前推荐用的是 RecycleView

以上就是关于androidlistview怎么调整item高度全部的内容,包括:androidlistview怎么调整item高度、android中怎么让listview的内容全部显示出来、Android listView *** 作问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9467568.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存