После разработки макетов в Android некоторое время, я все еще не могу освоить его.Часто результаты непредсказуемы.
Я думаю, что часть этого сводится к тому, что некоторые параметры макета не работают вместе.То есть, если вы используете один способ указания макета, вы не должны использовать другой способ.
Примечательно, что для меня изменение layout_width
с fill_parent
на wrap_content
обычно меняет мир,Позвольте мне привести еще один конкретный пример:
Часть макета моей деятельности - LinearLayout:
<LinearLayout android:id="@+id/ll2" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal">
<LinearLayout android:id="@+id/ll2a" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1">
<TextView android:id="@+id/l_cover" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/book_item_l_cover">
</TextView>
<ImageButton android:id="@+id/i_cover"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:scaleType="centerInside" android:gravity="center"
android:layout_weight="1" android:adjustViewBounds="true"
android:src="@drawable/spinner_black_76" android:minWidth="400dip">
</ImageButton>
</LinearLayout>
<LinearLayout android:id="@+id/ll2b" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical" android:layout_weight="1">
<TextView android:id="@+id/l_back_cover" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/book_item_l_back_cover">
</TextView>
<ImageButton android:id="@+id/i_back_cover"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:scaleType="centerInside" android:gravity="center"
android:layout_weight="1" android:adjustViewBounds="true"
android:src="@drawable/spinner_black_76">
</ImageButton>
</LinearLayout>
</LinearLayout>
Чтобы получить 2 столбца совмещенных по левому краю комбинаций кнопок меток рядом с каждым другим, я должен былиспользуйте атрибуты layout_weight
.Кнопки ImageButtons сокращаются вокруг своих изображений из-за атрибутов adjustViewBounds
.Это дает мне довольно хороший результат.
Теперь, наконец, мне также хотелось иметь кнопки определенного минимального размера, чтобы палец всегда мог легко нажимать на них, даже если они не содержат изображения (и они уменьшатся до нескольких миллиметров).Я экспериментировал с настройкой android:minWidth="400dip"
, как вы можете видеть.Я ожидал, что кнопка заполнит всю половину экрана по ширине (400 - довольно большое значение), но я не вижу никакой разницы.
Я предполагаю, что один из других атрибутов выше препятствует minWidth
от любого воздействия.И я, вероятно, мог бы пойти поэкспериментировать и отключить некоторых других, чтобы посмотреть, что это мне дает.Но мой вопрос здесь таков: Кто-нибудь имеет какую-либо (логическую) информацию о том, какой атрибут предотвращает или противоречит интуитивно понятному? Я бы хотел отсортировать это раз и навсегда.Это где-то задокументировано?