首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

默认ArrayAdapter的安卓ListView在显示时会超大

是因为ArrayAdapter默认使用了系统提供的布局文件android.R.layout.simple_list_item_1,该布局文件中的TextView设置了较大的字体大小和行高,导致ListView中的每个项显示过大。

为了解决这个问题,可以自定义一个适配器,并指定自定义的布局文件来替代默认的布局文件。以下是一个示例:

  1. 创建一个自定义的适配器类,继承自ArrayAdapter,并重写getView方法:
代码语言:txt
复制
public class CustomAdapter extends ArrayAdapter<String> {
    private Context mContext;
    private int mResource;

    public CustomAdapter(Context context, int resource, List<String> objects) {
        super(context, resource, objects);
        mContext = context;
        mResource = resource;
    }

    @NonNull
    @Override
    public View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {
        if (convertView == null) {
            LayoutInflater inflater = LayoutInflater.from(mContext);
            convertView = inflater.inflate(mResource, parent, false);
        }

        TextView textView = convertView.findViewById(R.id.text_view);
        String item = getItem(position);
        textView.setText(item);

        return convertView;
    }
}
  1. 创建一个自定义的布局文件,例如custom_list_item.xml,可以根据需求自定义布局样式,例如设置合适的字体大小和行高:
代码语言:txt
复制
<?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="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/text_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="16sp"
        android:padding="10dp" />

</LinearLayout>
  1. 在Activity中使用自定义的适配器和布局文件:
代码语言:txt
复制
ListView listView = findViewById(R.id.list_view);
List<String> data = new ArrayList<>();
data.add("Item 1");
data.add("Item 2");
data.add("Item 3");

CustomAdapter adapter = new CustomAdapter(this, R.layout.custom_list_item, data);
listView.setAdapter(adapter);

通过以上步骤,就可以解决默认ArrayAdapter的安卓ListView显示过大的问题。在自定义适配器中,可以根据需求进一步定制布局样式,以满足具体的显示需求。

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mpp)

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

15分9秒

08_ListView_使用ArrayAdapter显示文本列表.avi

领券