Android, Dialog, jego szerokość i przewijalność

0

Cześć,
mam sobie aplikację, w której chcę wyrzucić sobie na ekran takie okienko:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="30dp"
    >

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Nowa usługa"
            android:id="@+id/new_service_title" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Nazwa:"
            android:id="@+id/textView4"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/new_service_name"
            android:maxWidth="100dp"
            android:hint="Wpisz nazwę"
            android:gravity="end"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_toRightOf="@+id/textView4"
            android:layout_toEndOf="@+id/textView4" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Cena A:"
            android:id="@+id/textView2"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/new_service_price_a"
            android:maxWidth="100dp"
            android:hint="Wpisz cenę"
            android:gravity="end"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_toRightOf="@+id/textView2"
            android:layout_toEndOf="@+id/textView2"
            android:inputType="number" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Cena B:"
            android:id="@+id/textView3"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/new_service_price_b"
            android:maxWidth="100dp"
            android:hint="Wpisz cenę"
            android:gravity="end"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_toRightOf="@+id/textView3"
            android:layout_toEndOf="@+id/textView3"
            android:inputType="number" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Cena C:"
            android:id="@+id/textView6"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:id="@+id/new_service_price_c"
            android:maxWidth="100dp"
            android:hint="Wpisz cenę"
            android:gravity="end"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentEnd="true"
            android:layout_toRightOf="@+id/textView6"
            android:layout_toEndOf="@+id/textView6"
            android:inputType="number" />
    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:text="Jednostka"
            android:id="@+id/textView7"
            android:gravity="center"
            android:layout_centerVertical="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true" />

        <Spinner
            android:layout_width="wrap_content"
            android:layout_height="33dp"
            android:id="@+id/new_service_unit" />

    </LinearLayout>

    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:baselineAligned="false">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Utwórz"
            android:id="@+id/commit_button" />

        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Anuluj"
            android:id="@+id/dismiss_button" />
    </LinearLayout>

</LinearLayout>

Mam dwa problemy. Pierwszy - jak ustawić, by to okienko ustawiło się na maksymalnej szerokości ekranu? Gdy podam wartość bezwzględną np. 380dp to jest OK ale match_parent i fill_parent nie działa prawidłowo. Okienko jest wyświetlane bardzo wąsko.

Druga sprawa dotyczy wysokości. Bywa tak, że jak wypełnię jeden z editTextów to całość nie mieści się na ekranie aplikacji co sprawia, że nie są widoczne przyciski, które znajdują się na samym dole. Jak temu zaradzić?

Dzięki za pomoc

0

poczytaj sobie o Dialog Theme FullScreen

btw. jeżeli chcesz pełne okno to dlaczego nie activity nowe ?
Edit text ustaw se maxLines na 1
masz wąski bo nie masz żadnego elementu który by rozszerzył layout. Tak strzelam

Jak już skądś kopiujesz rób to z głową
android:layout_alignParentLeft="true" co to robi w LinearLayout ?

1

Kopiować nie kopiowałem. Pisałem sam - tego jestem pewien. To zapewne efekt "próbowania" różnych parametrów. Dlatego Dialog bo ma to służyć szybkiej edycji - choć może faktycznie warto się zastanowić nad osobną aktywnością.

EDIT:
Sprawa rozwiązana.

Coby zostało na przyszłość:
Kwestia wielkości wyskakującego okienka: http://stackoverflow.com/questions/2306503/how-to-make-an-alert-dialog-fill-90-of-screen-size
Kwestia przewijalnośc: wpakowanie wszystkiego w ScrollView.

Może komuś się kiedyś przyda

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