Я новичок в разработке Android. Я пытаюсь выполнить итерацию через Hashmap, чтобы создать вертикальные линейные макеты, которые всегда включают один ImageView и одну кнопку. Это прекрасно работает. Чтобы выделить доступное пространство, равное всем линейным макетам, я пытаюсь использовать атрибут веса. Это также работает. Но, к сожалению, он создает огромный зазор между изображением и кнопкой. Я не понимаю, почему. Есть идеи?android layout weight создает промежуток
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
if(count%3==0){
if(linear!=null){
layout.addView(linear);
}
linear=new LinearLayout(getApplicationContext());
linear.setOrientation(LinearLayout.HORIZONTAL);
linear.setLayoutParams(layoutParams);
}
LinearLayout linear2=new LinearLayout(getApplicationContext());
LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(0,
LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
lp1.setMargins(15, 0, 15, 0);
linear2.setLayoutParams(lp1);
linear2.setOrientation(LinearLayout.VERTICAL);
final String finalstring=(String)pair.getKey();
Button button = new Button(getApplicationContext());
button.setText((String)pair.getKey());
button.setClickable(false);
button.setBackgroundColor(getResources().getColor(R.color.friking_blue));
ImageView image = new ImageView(getApplicationContext());
new DownloadImageTask(image).execute((String)pair.getValue());
linear2.addView(image);
linear2.addView(button);
linear.addView(linear2);
linear2.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
Intent intent = new Intent(getApplicationContext(), Mycontacts.class);
intent.putExtra("category", finalstring);
startActivity(intent);
}
});
count++;
it.remove(); // avoids a ConcurrentModificationException
}
Вот изображение:
Спасибо за любую помощь!
Вы должны изучить ['GridView'] (http://developer.android.com/guide/topics/ui/layout/gridview.html). – VenomVendor