Skip to content

Commit d5848a7

Browse files
committed
优化文件选择item选择内边距的错误
1 parent 87d0384 commit d5848a7

File tree

1 file changed

+18
-8
lines changed

1 file changed

+18
-8
lines changed

base_iotutils/src/main/java/com/face_chtj/base_iotutils/FileDialogSelectUtils.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.graphics.Color;
77
import android.graphics.Typeface;
88
import android.graphics.drawable.ColorDrawable;
9+
import android.text.TextUtils;
910
import android.util.DisplayMetrics;
1011
import android.util.Log;
1112
import android.util.TypedValue;
@@ -53,6 +54,7 @@ public interface FileSelectCallback {
5354
private TextView titleView;
5455
private LinearLayout buttonLayout;
5556
private LinearLayout rootLayout;
57+
private int paddingTb=12;
5658

5759
private float widthRatio = 1f;
5860
private float heightRatio = 1f;
@@ -226,32 +228,37 @@ private void adjustDialogHeight() {
226228
lp.width = (int) (metrics.widthPixels * widthRatio);
227229

228230
int listViewHeight = calculateListViewHeight();
231+
Log.d(TAG, "adjustDialogHeight: listViewHeight>>"+listViewHeight);
229232
int dialogExtraHeight = calculateDialogExtraHeight();
233+
Log.d(TAG, "adjustDialogHeight: dialogExtraHeight>>"+dialogExtraHeight);
230234
int actualContentHeight = listViewHeight + dialogExtraHeight;
235+
Log.d(TAG, "adjustDialogHeight: actualContentHeight>>"+actualContentHeight);
231236
int maxHeight = (int) (metrics.heightPixels * heightRatio);
232-
237+
Log.d(TAG, "adjustDialogHeight: maxHeight>>"+maxHeight);
233238
lp.height = Math.min(actualContentHeight, maxHeight);
234239
window.setAttributes(lp);
235240
}
236241
}
237242

238243
private int calculateListViewHeight() {
239-
if (adapter == null || adapter.getCount() == 0) return 0;
240-
244+
int adaCount=adapter.getCount();
245+
if (adapter == null || adaCount == 0) return 0;
246+
Log.d(TAG, "calculateListViewHeight: adapter.getCount()>>"+adaCount+",fileCount>>"+fileList.size());
241247
int totalHeight = 0;
242-
for (int i = 0; i < adapter.getCount(); i++) {
248+
for (int i = 0; i < adaCount; i++) {
243249
View item = adapter.getView(i, null, listView);
244250
item.measure(
245251
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
246252
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
253+
Log.d(TAG, "calculateListViewHeight: getMeasuredHeight>>"+item.getMeasuredHeight());
247254
totalHeight += item.getMeasuredHeight();
248255
}
249256

250-
if (adapter.getCount() > 1) {
251-
totalHeight += (adapter.getCount() - 1) * listView.getDividerHeight();
257+
if (adaCount > 1) {
258+
totalHeight += (adaCount - 1) * listView.getDividerHeight();
252259
}
253260

254-
return totalHeight;
261+
return totalHeight+paddingTb*2;
255262
}
256263

257264
private int calculateDialogExtraHeight() {
@@ -300,10 +307,13 @@ public View getView(int position, View convertView, ViewGroup parent) {
300307
File file = fileList.get(position);
301308
LinearLayout layout = new LinearLayout(context);
302309
layout.setOrientation(LinearLayout.HORIZONTAL);
303-
layout.setPadding(22, 12, 22, 12);
310+
layout.setPadding(22, paddingTb, 22, paddingTb);
304311
layout.setGravity(Gravity.CENTER_VERTICAL);
305312

306313
TextView nameView = new TextView(context);
314+
nameView.setSelected(true); // 关键点:触发 marquee 效果
315+
nameView.setSingleLine(true);
316+
nameView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
307317
nameView.setTextSize(TypedValue.COMPLEX_UNIT_SP, itemTvSize);
308318
nameView.setLayoutParams(new LinearLayout.LayoutParams(
309319
0, ViewGroup.LayoutParams.WRAP_CONTENT, 1));

0 commit comments

Comments
 (0)