Макет Android выровняйте и заполните оставшееся место в поле зрения - PullRequest
0 голосов
/ 04 марта 2012

Для моего приложения я делаю экран, где вы можете увидеть информацию о магазине.Это то, что я получил сейчас (на изображении ниже). Оставшуюся область я хотел бы заполнить изображением или видом Google Maps.Можно ли просто заполнить оставшуюся область через XML?Или как мне решить эту проблему?

Второй вопрос: как вы можете видеть в белой области значки или приятно по центру.Я хочу выровнять значки на блоке над ним с левой стороны значков в белом поле.Как мне это сделать?

Код:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    >    

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" 
    android:background="@drawable/winkels_uren_bg"
    android:paddingTop="25dp"
    android:paddingBottom="25dp"
    android:paddingLeft="35dp">
    <TextView 
        android:id="@+id/lblStraat"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/map"
        android:gravity="center_vertical"
        android:paddingBottom="15dp"

        />
    <TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/telefoonnr"
        android:drawableLeft="@drawable/telefoon_icon"
        android:gravity="center_vertical"
        />
</LinearLayout>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:background="#FFFFFF"
    android:gravity="center_horizontal">

    <LinearLayout 
        style="@style/winkelinfoicons">
        <ImageButton
            style="@style/winkelinfoicon"
            android:id="@+id/icobancontact"
            android:background="@null" 
            />

        <ImageButton
             style="@style/winkelinfoicon"
            android:id="@+id/icomarkt"
            android:background="@null"
            />

    </LinearLayout>

    <LinearLayout 
        style="@style/winkelinfoicons">
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icoeducatie"
            android:background="@null"
            />
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icomobielestand"
            android:background="@null"
            />
    </LinearLayout>

    <LinearLayout 
        style="@style/winkelinfoicons">
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icogeschenken"
            android:background="@null"
            />
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icovoeding"
            android:background="@null"
            />
    </LinearLayout>

    <LinearLayout 
        style="@style/winkelinfoicons">
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icoklasbezoek"
            android:background="@null"
            />
        <ImageButton
            style="@style/winkelinfoicon" 
            android:id="@+id/icowinkel"
            android:background="@null"
            />
    </LinearLayout>

</LinearLayout>
</LinearLayout>

На самом деле я работаю с include, но теперь я вставил полный xml здесь:).

Design image

Ответы [ 2 ]

0 голосов
/ 26 июня 2013

LinearLayout поддерживает назначение веса отдельным детям, что поможет вам занять место.Этот атрибут присваивает представлению значение важности и позволяет ему расширяться, чтобы заполнить все оставшееся пространство в родительском представлении.Вес по умолчанию - 0

. Вычисление для назначения любого оставшегося пробела между дочерними элементами

пространство, назначенное для дочерних элементов = (индивидуальный вес дочерних элементов) / (сумма веса каждого дочернего элемента в линейной компоновке)

Пример: если есть три текстовых поля и два из них объявляют вес 1, а третьему не присвоен вес (0), то оставшееся пространство присваивается 1-му текстовому полю = 1 / (1 + 1 + 0)2-е текстовое поле = 1 / (1 + 1 + 0) 3-е текстовое поле = 0 / (1 + 1 + 0)

Просто попробуйте этот XML, который я использовал вес, чтобы занять оставшееся пространство

   <?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/layout" android:layout_width="fill_parent" android:layout_height="fill_parent">
   <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="1dip" android:orientation="horizontal">
      <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight=".7" android:orientation="vertical">
         <Button android:id="@+id/header" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:background="@drawable/header" android:text="header" />
         <TextView android:id="@+id/editText1" android:layout_width="match_parent" android:layout_weight="4" android:layout_height="275dp" android:text="this is  the   memo/reciept part \r\n this is  the   memo/reciept part " />
         <EditText android:id="@+id/editText2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:layout_span="3" android:padding="18dip" android:text="edit text" android:textColor="#000" android:textSize="18sp" />
         <Button android:id="@+id/footer" android:background="@drawable/cashierinputtext" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1" android:textSize="18sp" android:text="footer" android:padding="18dip" android:textColor="#000" />
      </LinearLayout>
      <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:layout_margin="0.5dip" android:layout_weight="1.9" android:gravity="center_vertical|fill_vertical" android:orientation="vertical">
         <Button android:id="@+id/F1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="4dip" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:layout_weight="1" android:text="f1" />
         <Button android:id="@+id/F2" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:layout_weight="1" android:text="f2" />
         <Button android:id="@+id/F3" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_weight="1" android:background="@drawable/entrykeybutton" android:text="f3" />
         <Button android:id="@+id/F4" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:layout_weight="1" android:text="f4" />
         <Button android:id="@+id/F5" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_weight="1" android:background="@drawable/entrykeybutton" android:text="f5" />
         <Button android:id="@+id/F6" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:text="f6" />
         <Button android:id="@+id/F7" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:text="f7" />
         <Button android:id="@+id/F8" android:layout_width="wrap_content" android:layout_margin="4dip" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:background="@drawable/entrykeybutton" android:text="f8" />
      </LinearLayout>
   </LinearLayout>
</RelativeLayout>
0 голосов
/ 05 марта 2012

Если у вас есть проблема, похожая на проблему с выравниванием. Вот как я это исправил. Я рассчитал ширину в dp иконок вниз. Я центрировал это. Я установил ширину текстовых представлений выше той же ширины вычисленного значения и центрировал его также.

...