2012-03-22 42 views
0

我使用我的自定义适配器填充ListView,因为我需要在每次发送的TextView上进行一些特殊的格式设置。的问题是,无论怎么小设置每个的TextView的TEXTSIZE,它们通过在列表中的相同量的空间分开,示出的图像中android每个小孩的ListView大小

enter image description here

我想在这些视图之间的间距减小。这是我的getView()方法。

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     TextView textView = (TextView) super.getView(position, convertView, parent); 

     textView.setGravity(Gravity.CENTER); 
     textView.setText(getItem(position).getName()); 
     textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 15); 
     textView.setTextColor(getItem(position).getClr()); 
     return textView; 
    } 

EDIT1: 什么其实我想要的是“蓝色”,“绿色”应该是紧密联系在一起。我想减少它们之间的间距。

EDIT2: XML:

<ListView 
      android:id="@+id/answerlist" 
      android:layout_width="240dp" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:layout_below="@+id/question" > 

     </ListView> 
+0

文字大小在您上面张贴的图像中看起来都一样。另外,发布你的XML文件将会很有帮助。 – prolink007 2012-03-22 14:41:47

+0

试图改变你的填充 – 2012-03-22 14:43:56

+0

整个XML文件是相当大的,所以我已经放在listView部分。 @ prolink007请参阅编辑 – wirate 2012-03-22 14:50:59

回答

0

嗯......问题是,我用的是默认布局android.R.layout.simple_list_item_1产生ListView行的视图。此布局使用文本外观“?android:attr/textAppearanceLarge”。我不知道这是什么样的填充/边距设置,但无论我在适配器中做什么,间距都没有减小。

所以我所做的是我在res/layout中创建了一个名为“row.xml”的自定义xml布局,并在其中放置了一个简单的TextView。我用这个布局来扩充我的ListView中的行,空间不见了。以下是构造函数的代码:

public ColoredAdapter(Context context, ArrayList<ColorElement> values) { 
     super(context, R.layout.row, values); 
     this.context = context; 
     this.values = values; 
    } 
1

这个问题是因为下面一行:

textView.setGravity(Gravity.CENTER); 

通过你真正需要你能解释我在细节d的方式?

+0

请参阅edit1请 – wirate 2012-03-22 14:53:09

0

正如jyotiprakash提到的,它可能需要更详细地描述你正在尝试做什么。

但是,从我所看到的您正在尝试设置边距。如果是这样,我会用以下方式去解决它。

..... 
    View someView = ((LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate(R.layout.yourViewLayout, null, false); 

    final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 

    layoutParams.setMargins(4, 15, 4, 0); 

    //Now you can use your view to set the layout params 
    someView.setLayoutParams(layoutParams); 

现在该视图的保证金将在符合上述定义的布局PARAMS

+0

那么..我不知道我怎么能解释它甚至更进一步。但是,请尝试......正如你在我张贴的图片中看到的那样,第一个文本是“蓝色”,然后有很多空间,然后是分隔符,在另一个空间之后,有文本“Green ”。我想减少每个TextView和divider之间的空间量。 – wirate 2012-03-22 15:20:09