#android #margin #inflate #android-inflate #layout-inflater
#Android #поле #раздувать #android-раздувать #макет-надуватель
Вопрос:
У меня есть этот код
View item = View.inflate(context, R.layout.item_layout, null);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT);
layout.addView(item, params);
мой item_layout: (обратите внимание на часть android:layout_marginTop=»2dip»)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_marginTop="2dip" android:layout_width="fill_parent">
<ImageView android:src="@drawable/pic_unknown" android:id="@ id/image1"
android:layout_height="50dip" android:layout_width="50dip"
android:padding="5dip"></ImageView>
</RelativeLayout>
а затем в моем макете я вижу список элементов, увеличенных, но без разницы между ними. Я пробовал с помощью margintop = 10dip, но ничего не происходит, я хочу сказать, что значение, которое я ввел в макет, не учитывается при вычислении с верхним краем или без него, макет тот же.
Как я могу добавить немного пустого пространства между элементами? Как я могу раздуть пустое пространство между элементами? Возможно ли раздуть что-то вроде gap или некоторого пробела? или я должен использовать обходной путь, например, раздуть какой-нибудь пустой макет высотой 2dip или что-то в этом роде, спасибо
Ответ №1:
Последний параметр метода inflate — это параметр, к которому вы добавляете раздутое представление. В вашем случае это так null
. Попробуйте это вместо:
View item = View.inflate(context, R.layout.item_layout, layout);
Комментарии:
1. Хорошее предложение. это attachToRoot.
2. Проблема, с которой я сталкиваюсь, заключается в том, что я раздуваю a
View
, чтобы прикрепить его к aListView
в качестве заголовка; если я используюListView
in the inflater, он выдает исключение. Как бы я получил поля в этом случае?3. какой макет?
4. @SalehMosleh Родительский вид. Представление, к которому вы хотите, чтобы ваш we был добавлен.
Ответ №2:
Попробуйте вместо этого заполнить RelativeLayout, если ваши поля применяются к внешней стороне.
Ответ №3:
Вы можете добавить поле к макету, который вы раздули, как показано ниже:
final LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
params.topMargin = 10;