Intereting Posts
Как установить минимальную ширину (в символах) для TextView? ORMLITE ORDER_BY с несколькими столбцами C2DMBroadcastReceiver onReceive не выполняется (для регистрации) Что происходит с приложением Android, когда телефонный звонок прерывает приложение? Как использовать adb tcpip без USB-отладки? Сервисы Android WebSocket, выполняющие множественные подключения Нужно ли использовать _ID в качестве первичного ключа SQlite? И он должен быть INT? (Android Dev) Android Studio «Open Declaration», как eclipse Как установить все приложение только в портретном режиме? Как сохранить изображение в общих предпочтениях в Android | Общая проблема с предпочтением в Android с изображением Широковещательный приемник onReceive () никогда не вызывал Увеличить масштаб с помощью функции canvas.scale? Полноэкранный режим в WindowManager Java.lang.IllegalStateException: Не удалось прочитать строку x col x из CursorWindow. Убедитесь, что курсор инициализирован правильно. Контакты Cocos2D-X Literatue

Коллапс полей в макетах Android

Возможно ли свернуть краны в Android? Предположим, у меня есть LinearLayout и добавьте три TextView s, каждый из которых имеет android:layout_margin из 10dp . Я получаю следующий результат:

фактический результат

Однако я хотел бы получить этот результат:

ожидаемый результат

Я знаю, что я мог бы это решить, установив разные верхние и нижние поля для разных элементов:

  • Установите верхнее поле первого элемента и нижнее поле последнего элемента на 10dp,
  • Установите оставшиеся верхние / нижние поля на 5dp,

Но это делает дизайн более сложным (особенно, если TextViews динамически создаются). Есть ли способ сделать маржи, как в CSS? (Чтобы объяснить, почему это имеет смысл, см.: Какая точка разворачивания полей CSS? )

Solutions Collecting From Web of "Коллапс полей в макетах Android"

То, что я обычно делаю, чтобы исправить это сам, состоит в том, чтобы просто сократить поле View's (т. Е. Ваш TextView) пополам и добавить тот же номер, что и дополнение к содержащейся группе ViewGroup (т.е. LinearLayout). Таким образом, вы получите равномерное расстояние вокруг всех элементов. Например:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:padding="5dip" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="I'm a TextView!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="I'm a TextView!" /> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="5dip" android:text="I'm a TextView!" /> </LinearLayout>