我正在使用我的自定义适配器填充ListView
,因为我需要在我发送的每个TextView上进行一些特殊格式化。问题是,无论我设置每个TextView的textSize有多小,它们都会被列表中相同数量的空间隔开,如图所示
我想减少这些视图之间的间距。这是我的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 :(得分:1)
此问题是由于以下行:
textView.setGravity(Gravity.CENTER);
实际上你需要的是什么才能详细解释我?
答案 1 :(得分: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);
现在该视图的边距将与上面定义的布局参数
一致答案 2 :(得分: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;
}