1

我的问答游戏中有一个主要布局,其中还有 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>
4

1 回答 1

0

稍后,我们开始吧,这个问题有几个解决方案,我将在这里指出其中两个可能是最用户友好的:

  1. 对所有内容都使用滚动视图,恕我直言,这是最用户友好的解决方案。
  2. 仅对具有定义高度的文本和按钮使用滚动视图,并将下面的文本和按钮静态放在下面,然后使用相对布局。
  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="@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>

字幕解决方案不太好

android:singleLine="true" 
android:ellipsize="marquee"
android:marqueeRepeatLimit ="marquee_forever"
android:scrollHorizontally="true"
android:focusable="true"
android:focusableInTouchMode="true" 
于 2013-03-07T09:22:23.370 回答