Android小部件:在小部件中向ListView添加上边距

时间:2012-09-14 06:01:32

标签: android listview android-widget widget android-listview

虽然这个问题可能听起来像是其他一些问题,但我试图在小部件中做这件事的事实显然限制了我在其他地方使用建议解决方案的能力。

总结:我想在列表中最顶层的项目上方以及最底层项目下方添加间距,以便将它们偏离标题栏和底栏边缘。

基本上,我试图解决与Add margin above top ListView item (and below last) in Android相同的问题,但是,我不能依赖于对ListView对象的引用以便setHeader()或类似的东西。

这在Android小部件中真的不可能吗?

3 个答案:

答案 0 :(得分:0)

我假设你正在为ListView使用适配器,所以你正在膨胀额外的listview布局。在getView方法中,根据列表项位置(0和最后一个),放置底部或顶部填充。

答案 1 :(得分:0)

所以,这里我有适配器的覆盖功能。从这个功能你可以改变或指定边距,高度。你需要使用你正在使用的布局对象,你可以从中更改布局属性。

 @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                LayoutInflater mInflater = (LayoutInflater) context
                        .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
                convertView = mInflater.inflate(R.layout.drawer_list_item, null);
            }
            if (position == 0) {//for first row



                ImageView imgIcon = (ImageView) convertView.findViewById(R.id.icon);
                TextView txtTitle = (TextView) convertView.findViewById(R.id.title);

                RelativeLayout.LayoutParams relate = new RelativeLayout.LayoutParams(200, 200);
                relate.setMargins(150, 0, 0, 0);

                imgIcon.setLayoutParams(relate);
                RelativeLayout.LayoutParams text = new RelativeLayout.LayoutParams(300, 100);
                text.setMargins(150, 180, 0, 0);


                }
    return convertView ;

//希望得到帮助

答案 2 :(得分:-1)

在getView()期间在适配器中检查它是位置0还是.getLength()并在convertView上设置LayoutParams