Android, wymiary ekranu, wartość dpi, skalowalność

0

Cześć,
męczę się trochę z layotem na androida. Sytuacja wygląda tak, że mam obok siebie pole tekstowe (po lewej) i dwa przyciski (po prawej), które znajdują się na tej samej "wysokości". Zależy mi na tym, żeby wymiary pola tekstowego równały się wymiarowi ekranu - (minus) szerokość pola z tymi przyciskami. Wtedy niezależnie od wielkości ekranu wszystkie elementy będą widoczne. Wiem jak pobrać rozdzielczość ekranu - tyle, że nie poleca się ustawiania wielkości w px. W jaki sposób w takim razie należałoby to zrobić?

1

Możesz np użyć RelativeLayotu, prawy przycisk ustawić do prawej strony rodzica (layout_alignParentRight), lewy przycisk ustawic na lewo od prawego (layout_toLeftOf) a pole tekstowe ustawić na lewo od lewego przycisku.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal">

    <EditText
        android:id="@+id/edit_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/button_left"
        android:hint="Text" />

    <Button
        android:id="@+id/button_left"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/button_right"
        android:text="Button 1" />

    <Button
        android:id="@+id/button_right"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:text="Button 2" />

</RelativeLayout>
0

Wrzuć jakiś screen jak chcesz żeby to wyglądało ;).

0

531f59758b.png

Chodzi o to żeby pole tekstowe rozszerzało się maksymalnie tak by zmieściły się jeszcze przyciski. Pixelami to ustawić na sztywno jest łatwo ale na innym ekranie jest już inaczej. Czyli wymiar tekstu to max. szerokosc ekranu - szerokość kontenera z przyciskami - jakiś tam margines.

0

Lineral Layout z orientation horizontal.
W nim pole tekstowe oraz oba przyciski, ustaw szerokość na match_parent.
Dla każdego z nich pobaw się atrybutem layout_weight.
W ten sposób zastosujesz proporcje zamiast wpisywania wartości px (nawiasem to dp powinno chyba być?).
Profit.

1 użytkowników online, w tym zalogowanych: 0, gości: 1