У меня есть небольшая (и немного сложная) проблема, и я не мог решить ее за много часов самостоятельно. Сценарий проблемы:
Я добавляю TextView (т. е. заголовки) и связанные (с возможностью нажатия) ImageView программно (из базы данных). Отступ между ними уже очень большой (я не добавлял между ними никаких отступов или отступов). Я хочу установить маржу только на 1dp. Но я не могу.
Я использовал следующий код:
LinearLayout linearLayout = (LinearLayout) this.findViewById(R.id.linearLayout);
//No params and margins used for it
TextView tvTitle = new TextView(this); // getting from json (dynamically)
tvTitle.setTextSize(17) ;
tvTitle.setText(title) ;
linearLayout.addView(tvTitle) ;
ImageView image = new ImageView(this) ;
// here getting the image from url
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT) ;
params.setMargins(5, 0, 5, 0) ;
image.setLayoutParams( params );
linearLayout.addView(image) ;
Так как здесь topMargin и bottomMargin равны 0, но когда приложение работает; поля над и под изображениями почти 20 dp.
Когда я увеличиваю маржу с 20 dp, т. Е. Когда я заменяю любой 0 на 30 или 40, маржа увеличивается, но когда я уменьшаю ее до 5, 1 или 0, она не уменьшается. Он остается около 20 dp. Кто имеет представление об этом...