андроид макет XML свойства и позиционирование ... - PullRequest
2 голосов
/ 28 февраля 2012

У меня проблема, и я пробовал поискать и искать в Google другими способами, но я не знаю, что искать ...

мой макет выглядит так:

 _______________________________________________________
|           |        |                                  |
|           |        |                                  |  
|  content  | button |                                  |
|           |        |                                  | 
|___________|________|__________________________________|                                                 

но если я добавлю немного больше, это будет выглядеть так:

 _______________________________________________________
|                         |        |                    |
|                         |        |                    |  
|  content                | button |                    |
|                         |        |                    | 
|_________________________|________|____________________|                                                 

но когда содержимое больше обертки, я хочу сделать прокрутку содержимого доступной, но покажу кнопку в конце обёртки следующим образом:

 _______________________________________________________
|                                              |        |  
|                                              |        |  
|   scrollable content                         | button |  
|                                              |        |  
|______________________________________________|________|

Так что не имеет значения, сколько там контента, кнопка всегда будет видна, а контент будет горизонтально прокручиваться :)

мой код сейчас выглядит примерно так, но я не знаю, что делать, чтобы получить его так, как хочу:

<LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="@dimen/TopBarHeight" >


        <HorizontalScrollView 
            android:layout_width="wrap_content"
            android:layout_height="@dimen/TopBarHeight" >
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="@dimen/TopBarHeight" >
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
                <LinearLayout
                    android:layout_width="@dimen/TabMaxWidth"
                    android:layout_height="@dimen/TopBarHeight" />
            </LinearLayout>             
        </HorizontalScrollView>
        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="@dimen/TopBarHeight" >
            <ImageButton 
                android:layout_width="@dimen/TopBarHeight"
                android:layout_height="@dimen/TopBarHeight"/>
        </LinearLayout>
    </LinearLayout>

Ответы [ 3 ]

0 голосов
/ 28 февраля 2012
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent">


    <HorizontalScrollView android:layout_height="@dimen/TopBarHeight" android:layout_width="wrap_content" android:layout_weight="1">
        <LinearLayout android:layout_width="wrap_content"
            android:layout_height="@dimen/TopBarHeight">
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
            <LinearLayout android:layout_width="@dimen/TabMaxWidth"
                android:layout_height="@dimen/TopBarHeight" />
        </LinearLayout>
    </HorizontalScrollView>
    <ImageButton android:layout_width="@dimen/TopBarHeight" android:layout_height="@dimen/TopBarHeight" android:src="@drawable/icon"></ImageButton>
</LinearLayout>
0 голосов
/ 28 февраля 2012

Гравитация пользовательского макета для HorizontalScrollView и LinearLayout, содержащих ImageButton, как показано ниже.

изменения в соответствии с пунктами ниже

  1. Добавить андроид: layout_weight = "1" в HorizontalScrollView

  2. Добавление Android: layout_width = "fill_parent" в HorizontalScrollView

  3. Добавить android: layout_weight = "4" во втором Linearlayout, содержащем кнопку Image

            <HorizontalScrollView 
                android:layout_width="fill_parent"
                android:layout_height="@dimen/TopBarHeight" 
    android:layout_weight="1">
                <LinearLayout
                    android:layout_width="wrap_content"
                    android:layout_height="@dimen/TopBarHeight" >
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                    <LinearLayout
                        android:layout_width="@dimen/TabMaxWidth"
                        android:layout_height="@dimen/TopBarHeight" />
                </LinearLayout>             
            </HorizontalScrollView>
            <LinearLayout
                android:layout_width="fill_parent"
                android:layout_height="@dimen/TopBarHeight" 
    android:layout_weight="4">
                <ImageButton 
                    android:layout_width="@dimen/TopBarHeight"
                    android:layout_height="@dimen/TopBarHeight"/>
            </LinearLayout>
        </LinearLayout>
    
0 голосов
/ 28 февраля 2012

Я бы предложил верхний LinearLayout с общим весом макета 4 и горизонтальный.Затем создайте еще один линейный макет для контента, присвойте ему вес 3 и поместите прокрутку внутри.Создайте еще один линейный макет с весом 1 и добавьте кнопку к этому макету.

В качестве альтернативы используйте относительный макет.Затем вы можете указать, что вид прокрутки выравнивается по левому родительскому элементу и справа от кнопки.И кнопка выравнивается по родительскому праву и по праву от прокрутки.

РЕДАКТИРОВАНИЕ: Вот пример RelativeLayout, который будет делать то, что вы хотите:

<?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" >
<ScrollView
    android:id="@+id/scrollView1"
    android:layout_width="wrap_content"
    android:layout_height="48dp"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true" android:layout_toLeftOf="@id/button1">
    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </LinearLayout>
</ScrollView>
<Button
    android:id="@+id/button1"
    android:layout_width="100dp"
    android:layout_height="48dp"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:text="Button" />
</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...