如何防止布局移动?

时间:2013-03-06 16:42:24

标签: android android-layout

我的测验游戏中有一个主要布局,其中有3个嵌套布局,一个在另一个下面,垂直。在顶部,我有一个问题的文本视图,中间的一个垂直排列的四个按钮。现在,当我有一行问题时,一切都很好,但一旦问题转到两行,我的按钮就会向下移动一行。怎么预防这个?我希望我的问题下面的一切都是固定的,静态的,不要移动。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="404dp"
        android:orientation="vertical"
        android:weightSum="2"
         >
  <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="1" >

    <TextView
        android:id="@+id/tvPitanje"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="20dp"
        android:gravity="center"
        android:text="@string/tvPitanje"
        android:textSize="22sp" /> 
    </LinearLayout>

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_weight="1" >

    <Button
        android:id="@+id/bOdgovor1"
        android:layout_width="260dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="10dp"
        android:background="@drawable/buttons"
        android:text="@string/bOdgovor1"
        android:textSize="26sp" />

    <Button
        android:id="@+id/bOdgovor2"
        android:layout_width="260dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:background="@drawable/buttons"
        android:text="@string/bOdgovor2"
        android:textSize="26sp" />

    <Button
        android:id="@+id/bOdgovor3"
        android:layout_width="260dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:background="@drawable/buttons"
        android:text="@string/bOdgovor3"
        android:textSize="26sp" />

    <Button
        android:id="@+id/bOdgovor4"
        android:layout_width="260dp"
        android:layout_height="60dp"
        android:layout_gravity="center"
        android:layout_marginTop="20dp"
        android:background="@drawable/buttons"
        android:text="@string/bOdgovor4"
        android:textSize="26sp" />

    </LinearLayout>
    </LinearLayout>

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

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" >

        <Button
            android:id="@+id/bIzlazIzKviza"
            style="?android:attr/buttonStyleSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="15dp"
            android:background="@drawable/buttons"
            android:text="@string/bIzlazKviz"
            android:textSize="23sp" />

        </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tvCountdown"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="50dp"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/tvCountdown"
            android:textColor="#ff0000"
            android:textSize="29sp" />

        <TextView
            android:id="@+id/tvSkor"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginTop="5dp"
            android:gravity="center"
            android:text="@string/tvSkor"
            android:textSize="23sp" />

        </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1" >

        <TextView
            android:id="@+id/tvBrojPitanja"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginLeft="30dp"
            android:text="1"
            android:textSize="32sp" />

        </LinearLayout>

    </LinearLayout>

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

过了一会儿,但是我们走了,这个问题有几个解决方案我会在这里指出其中两个可能是最友好的用户:

  1. 使用scrollview查看所有内容,恕我直言,这是最友好的解决方案。
  2. 将scrollview用于具有指定高度的文本和按钮,并将下面的文本和按钮静态放在下面,然后使用相对布局。
  3. 选框文字视图
  4. 我将在这里推出的第一个选项,包括一些布局重构,第二个我不推荐使用的选项,如果你有一个例子,那就很容易实现:

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:background="@android:color/background_light"
                  android:orientation="vertical">
    
        <ScrollView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="vertical">
    
            <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:orientation="vertical">
    
                <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">
    
                    <TextView
                            android:id="@+id/tvPitanje"
                            android:layout_width="wrap_content"
                            android:layout_height="wrap_content"
                            android:layout_gravity="center"
                            android:layout_marginLeft="5dp"
                            android:layout_marginRight="5dp"
                            android:layout_marginTop="20dp"
                            android:gravity="center"
                            android:text="long text that will automaticly scroll and make sure all content will be displayed right in the scrollview this is the best case scenario"
                            android:textSize="22sp"/>
    
                    <Button
                            android:id="@+id/bOdgovor1"
                            android:layout_width="260dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="10dp"
                            android:text="one"
                            android:textSize="26sp"/>
    
                    <Button
                            android:id="@+id/bOdgovor2"
                            android:layout_width="260dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="20dp"
                            android:text="two"
                            android:textSize="26sp"/>
    
                    <Button
                            android:id="@+id/bOdgovor3"
                            android:layout_width="260dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="20dp"
                            android:text="three"
                            android:textSize="26sp"/>
    
                    <Button
                            android:id="@+id/bOdgovor4"
                            android:layout_width="260dp"
                            android:layout_height="60dp"
                            android:layout_gravity="center"
                            android:layout_marginTop="20dp"
                            android:text="four"
                            android:textSize="26sp"/>
    
                </LinearLayout>
    
                <LinearLayout
                        android:layout_width="match_parent"
                        android:layout_height="fill_parent"
                        android:orientation="horizontal">
    
                    <LinearLayout
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:layout_weight="1">
    
                        <Button
                                android:id="@+id/bIzlazIzKviza"
                                style="?android:attr/buttonStyleSmall"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:layout_marginLeft="15dp"
                                android:text="left"
                                android:textSize="23sp"/>
    
                    </LinearLayout>
    
                    <LinearLayout
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:layout_weight="1"
                            android:orientation="vertical">
    
                        <TextView
                                android:id="@+id/tvCountdown"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="50dp"
                                android:layout_marginTop="5dp"
                                android:gravity="center"
                                android:text="next"
                                android:textColor="#ff0000"
                                android:textSize="29sp"/>
    
                        <TextView
                                android:id="@+id/tvSkor"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_marginLeft="30dp"
                                android:layout_marginTop="5dp"
                                android:gravity="center"
                                android:text="middle"
                                android:textSize="23sp"/>
    
                    </LinearLayout>
    
                    <LinearLayout
                            android:layout_width="fill_parent"
                            android:layout_height="fill_parent"
                            android:layout_weight="1">
    
                        <TextView
                                android:id="@+id/tvBrojPitanja"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_gravity="center"
                                android:layout_marginLeft="30dp"
                                android:text="right"
                                android:textSize="32sp"/>
    
                    </LinearLayout>
    
                </LinearLayout>
    
            </LinearLayout>
    
        </ScrollView>
    
    </LinearLayout>
    

    Marquee解决方案不太好看

    android:singleLine="true" 
    android:ellipsize="marquee"
    android:marqueeRepeatLimit ="marquee_forever"
    android:scrollHorizontally="true"
    android:focusable="true"
    android:focusableInTouchMode="true"