ScrollView中巢狀ListView,TextView只顯示一行的高度解決方案
這種情況下,TextView在OnMeasure中只測量了一行的高度,需要重新定義TextView
package com.fyq.xueyou.widget;
import android.app.Activity;
import android.content.Context;
import android.text.Layout;
import android.util.AttributeSet;
import android.util.FloatMath;
import android.widget.LinearLayout;
import android.widget.TextView;
/**
* 作者:Yelbosh on 2015/6/19 20:07
* 郵箱:yelbosh@foxmail.com
* 描述:適用於在ListView中顯示TextView
* 最近修改:2015/6/19 20:07 by Yelbosh
*/
public class TextViewPlus extends TextView{
public TextViewPlus(Context context) {
super(context);
}
public TextViewPlus(Context context, AttributeSet attrs) {
super(context, attrs);
}
public TextViewPlus(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
Layout layout = getLayout();
if (layout != null) {
int height = (int) FloatMath.ceil(getMaxLineHeight(this.getText().toString()))
+ getCompoundPaddingTop() + getCompoundPaddingBottom();
int width = getMeasuredWidth();
setMeasuredDimension(width, height);
}
}
private float getMaxLineHeight(String str) {
float height = 0.0f;
float screenW = ((Activity)getContext()).getWindowManager().getDefaultDisplay().getWidth();
float paddingLeft = ((LinearLayout)this.getParent()).getPaddingLeft();
float paddingReft = ((LinearLayout)this.getParent()).getPaddingRight();
//這裡具體this.getPaint()要注意使用,要看你的TextView在什麼位置,這個是拿TextView父控制元件的Padding的,為了更準確的算出換行
int line = (int) Math.ceil( (this.getPaint().measureText(str)/(screenW-paddingLeft-paddingReft))); height = (this.getPaint().getFontMetrics().descent-this.getPaint().getFontMetrics().ascent)*line; return height;}
}
相關文章
- 【Android】ScrollView巢狀ListView只顯示第一行問題原理分析AndroidView巢狀
- 四種方案解決ScrollView巢狀ListView問題View巢狀
- ScrollView巢狀ListView解決辦法以及原理View巢狀
- ListView巢狀GridView解決方案View巢狀
- ScrollView中巢狀GridView,Listview的辦法View巢狀
- 解決Flutter的ListView巢狀ListView滑動衝突以及無限高度問題FlutterView巢狀
- 完美解決ScrollView巢狀ListView滑動衝突(有圖有真相)View巢狀
- Android 解決ListView巢狀GridView、GridView顯示不正常的方法AndroidView巢狀
- 巢狀ScrollView問題解決思路巢狀View
- Scrollview 和 內部 recycleview 高度固定時巢狀衝突的一種解決方法View巢狀
- 從原理上說說ScrollView巢狀ListView的問題View巢狀
- 解決ScrollView巢狀RecyclerView滑動卡頓問題View巢狀
- Android中ExpandableListView中巢狀ListViewAndroidView巢狀
- 從原始碼角度分析SrcollView巢狀ListView顯示不全的問題原始碼View巢狀
- ScrollView與ListView合用問題(正確計算Listview的高度)View
- Android -下拉重新整理,ViewPager和ScrollView巢狀滾動問題解決方案AndroidViewpager巢狀
- 【BUG系列】Fragment中巢狀Fragment,不顯示Fragment巢狀
- win7圖片只顯示圖示不顯示預覽圖解決方案Win7圖解
- 解決 ScrollView 巢狀 RecyclerView 時,慣性滑動失效的問題View巢狀
- 解決ScrollView巢狀ViewPager出現的滑動衝突問題巢狀Viewpager
- ListView與ScrollView衝突,計算ListView的高度Item,然後重繪View
- ScrollView 與ListView 滑動衝突解決View
- Android中Fragment巢狀Fragment,切換Fragment時不顯示檢視的原因及解決方法AndroidFragment巢狀
- 一種巢狀滑動衝突的解決方案巢狀
- 巢狀UIScrollview的滑動衝突解決方案巢狀UIView
- 多層 UIScrollView 巢狀滾動解決方案UIView巢狀
- iOS中webView巢狀tableView中動態高度問題iOSWebView巢狀
- 【菜鳥學安卓】- TextView 顯示Html 一 解決圖片顯示不了的小問題安卓TextViewHTML
- bootstrap datetimepicker 中只顯示年或者只顯示月份boot
- 一種非巢狀滑動衝突的解決方案巢狀
- 巢狀UITextView的UITableViewCell高度自適應巢狀UITextView
- pyecharts地圖功能,並解決顯示不全或只顯示南海諸島問題解決Echarts地圖
- Overleaf中插入pdf圖片只顯示圖片路徑的解決方式
- 解決ReactNavigation中Navigator巢狀問題ReactNavigation巢狀
- UIWebView與tableView巢狀的記憶體問題及解決方案UIWebView巢狀記憶體
- AverageTextView——均勻顯示的TextViewTextView
- listview+edittext完美解決方案View
- android listView巢狀gridview的使用心得AndroidView巢狀