хотя я читал себя через несколько потоков, объясняя различия между dp, sp, px и т. Д., А также пытался получить хороший макет, Я все еще изо всех сил стараюсь сделать это правильно для разных телефонов.Исправлена компоновка Android (dp, margin и т. Д.)
Я использую разные фрагменты, но если я получу помощь, чтобы сделать все правильно в одном фрагменте, я уверен, что смогу исправить остальные самостоятельно.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
<!--all paddings=0-->
android:keepScreenOn="true"
tools:context=".MainActivity">
...
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragmentBase"
class="...FragmentBase" />
<!--other fragments-->
</RelativeLayout>
Так им пытаются получить надлежащее расположение в этом fragmentBase, который выглядит следующим образом:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
<!--all paddings=0-->>
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragmentBase"
class="...FragmentBase" />
<ScrollView
android:layout_width="match_parent"
android:layout_height="400dp"
android:layout_marginTop="40dp"
android:requiresFadingEdge="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<!--elements-->
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom">
<Button
android:layout_width="0dp"
android:layout_weight="0.8"
android:layout_height="40dp"
<!--other stuff-->/>
<Button
android:layout_width="0dp"
android:layout_weight="0.5"
android:layout_height="40dp"
<!--other stuff--> />
<Button
android:layout_width="0dp"
android:layout_weight="0.7"
android:layout_height="40dp"
<!--other stuff-->/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="bottom"
android:layout_marginBottom="40dp">
<Button
android:layout_width="0dp"
android:layout_weight="0.6"
android:layout_height="40dp"
<!--other stuff--> />
<Button
android:layout_width="0dp"
android:layout_weight="0.5"
android:layout_height="40dp"
<!--other stuff--> />
<Button
android:layout_width="0dp"
android:layout_weight="0.6"
android:layout_height="40dp"
<!--other stuff--> />
</LinearLayout>
</RelativeLayout>
оооочень. Проблема в основном заключается в том, что scrollview в некоторых случаях слишком длинный, в других случаях слишком короткий. Наличие фиксированного layout_height = "400dp" кажется ошибкой. Также, задавая высоту двух строк кнопок до 40dp и имея один 40dp над другим, оба начинаются со дна, похоже, не являются таким хорошим решением, но эти кнопки получили фоновые изображения, поэтому я не могу используйте wrap_content.
Каким будет макет? Я хочу, чтобы scrollView начинался прямо под моим «заголовком», поэтому андроид: layout_marginTop = «40dp» более или менее фиксирован, а две кнопки - в самом низу экрана. Я думаю, я хочу, чтобы scrollview была динамической длиной.
Plz помощь: S
Это кажется очень полезным! Для чего нужно установить высоту ScrollView сейчас? match_parent? – user3646267
Да, таким образом он заполнит все пространство между вершиной (минус 40dp поля) и LinearLayout (id = row1) –
Хорошо, отлично, что отвечает на эту тему. – user3646267