【问题标题】:ListView is a bit clumsyListView 有点笨拙
【发布时间】:2025-05-31 07:20:02
【问题描述】:

我正在制作一个 RSS 提要解析器,然后使用数组适配器扩展 UI。制作列表的屏幕布局显示列表很大。但是,当我实际执行应用程序时,它会显示小标题。 布局是这样的,

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

    <ListView
        android:id="@+id/android:list"
        android:layout_width="wrap_content"
        android:layout_height="280dp" />

</LinearLayout>

这是截图:

如果有人能告诉我,如何让这些列表看起来更大,因为我也计划解析图像 url,并将其显示在帖子的左侧。

【问题讨论】:

  • 你的行 xml 是什么样子的

标签: android listview saxparser rss-reader


【解决方案1】:

创建一个扩展 BaseAdapter 的自定义适配器。这将允许您为每一行扩展自定义视图。在该视图中,只需将文本放大即可。

public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder holder;
    if (convertView == null) {
        convertView = context.getLayoutInflater().inflate(
                R.layout.apk_card, parent, false);
        holder = new ViewHolder();
        holder.appIcon = (ImageView) convertView.findViewById(R.id.appicon);
        holder.appName = (TextView) convertView.findViewById(R.id.appname);
        holder.statusIcon = (ImageView) convertView
                .findViewById(R.id.status_icon);
        holder.statusText = (TextView) convertView
                .findViewById(R.id.status_text);

        holder.status = convertView.findViewById(R.id.status);
        holder.details = convertView.findViewById(R.id.details);
        holder.launch = convertView.findViewById(R.id.launch);

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    ApplicationInfo appInfo = getItem(position);
    Drawable appIcon = packageManager.getApplicationIcon(appInfo);

    String appName = packageManager.getApplicationLabel(appInfo).toString();

    holder.appName.setText(appName);
    holder.appIcon.setImageDrawable(appIcon);

    return convertView;
}

【讨论】:

  • 在启动、详细信息和状态中应该使用什么?
  • 这些都是我列表中使用的变量。该代码不适合您即插即用,您需要对其进行修改以适合您的数据
【解决方案2】:

实际上,我所做的只是使用 ListView 的 Divider 和 DividerHeight 属性。 :)

【讨论】: