ScrollView not scrolling and application restart on orientation change

时间:2015-06-26 10:29:23

标签: android android-scrollview android-orientation

I am building an Android application which connects with a Bluetooth module. When the application is created, a thread to connect to the module is executed. When i rotate the phone, the application restarts and the connection thread is run again. To get around this, I added

android:configChanges="orientation|screenSize"
android:windowSoftInputMode="adjustResize|stateHidden"

to the Android manifest file. Now the application doesn't get restarted, but a ScrollView I used in the activity does not scroll. Any idea to get the scrollview scrollable and prevent the application from restarting?

Here is my XML file

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent">

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fillViewport="true"
    android:layout_above="@+id/imageView">

    <LinearLayout
        android:id="@+id/linear"
        android:layout_width="fill_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/imageView"
        android:background="#bf000000"
        android:orientation="vertical"
        tools:context=".MainActivity">

        <TextView
            android:id="@+id/txtReceive1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:visibility="gone" />

        <TableLayout
            android:id="@+id/table"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#fff3f3f2"
            android:shrinkColumns="*"
            android:stretchColumns="*">

            <TableRow>

                <TextView
                    android:layout_width="wrap_content"
                    android:gravity="center"

                    android:padding="8dip"
                    android:text="CH" />

                <TextView
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="kWh" />

                <TextView
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="Load" />

                <TextView
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="Date" />
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/t11"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="1" />

                <TextView
                    android:id="@+id/t12"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t13"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t14"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/t21"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="2" />

                <TextView
                    android:id="@+id/t22"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t23"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t24"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />
            </TableRow>

            <TableRow>

                <TextView

                    android:id="@+id/t31"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="3" />

                <TextView

                    android:id="@+id/t32"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView

                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView

                    android:id="@+id/t34"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />
            </TableRow>

            <TableRow>

                <TextView

                    android:id="@+id/t41"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip"
                    android:text="4" />

                <TextView
                    android:id="@+id/t42"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView

                    android:id="@+id/t43"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView

                    android:id="@+id/t44"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />
            </TableRow>

            <TableRow>

                <TextView
                    android:id="@+id/t51"
                    android:layout_width="wrap_content"

                    android:gravity="center"
                    android:padding="8dip"
                    android:text="5" />

                <TextView
                    android:id="@+id/t52"

                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t53"

                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />

                <TextView
                    android:id="@+id/t54"
                    android:layout_width="wrap_content"
                    android:gravity="center"
                    android:padding="8dip" />
            </TableRow>
        </TableLayout>

        <TextView
            android:id="@+id/txtReceive"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/table"
            android:background="#ff8c00"
            android:padding="6dip" />

        <LinearLayout
            android:id="@+id/lin2"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:paddingTop="5dp"
            android:visibility="visible"
            android:weightSum="2">

            <LinearLayout
                android:id="@+id/rel"
                android:layout_width="fill_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:orientation="vertical"
                android:visibility="visible"
                android:weightSum="4">


                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton1"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:background="@drawable/btn_01_small"
                        android:textColor="#ffa5ff45" />

                    <TextView
                        android:id="@+id/textView3"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton1"
                        android:layout_centerHorizontal="true"
                        android:text="Channel"
                        android:textSize="22sp" />

                    <TextView
                        android:id="@+id/textView9"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton1"
                        android:layout_centerHorizontal="true"
                        android:text="0"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />

                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton2"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/btn_02"
                        android:textColor="#ffa5ff45" />

                    <TextView
                        android:id="@+id/textView6"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton2"
                        android:layout_centerHorizontal="true"
                        android:text="kWh"
                        android:textSize="22sp" />

                    <TextView
                        android:id="@+id/textView10"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton2"
                        android:layout_centerHorizontal="true"
                        android:text="000.0"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton3"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/btn_03"
                        android:textColor="#ffa5ff45" />

                    <TextView
                        android:id="@+id/textView7"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton3"
                        android:layout_centerHorizontal="true"
                        android:text="Load"
                        android:textSize="22sp" />

                    <TextView
                        android:id="@+id/textView11"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton3"
                        android:layout_centerHorizontal="true"
                        android:text="000"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton4"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/btn_04_small" />

                    <TextView
                        android:id="@+id/textView8"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton4"
                        android:layout_centerHorizontal="true"
                        android:text="Days"
                        android:textSize="22sp" />

                    <TextView
                        android:id="@+id/textView12"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton4"
                        android:layout_centerHorizontal="true"
                        android:text="000"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />

                </RelativeLayout>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/rel2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:layout_alignParentRight="true"
                android:layout_below="@+id/txtReceive"
                android:layout_weight="1"
                android:orientation="vertical"
                android:visibility="visible"
                android:weightSum="4">

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton12"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent"
                        android:background="@drawable/btn_01_small"
                        android:textColor="#ffa5ff45" />

                    <TextView
                        android:id="@+id/textView32"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton12"
                        android:layout_centerHorizontal="true"
                        android:text="Auto ON"
                        android:textSize="22sp" />

                    <TextView
                        android:id="@+id/textView92"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton12"
                        android:layout_centerHorizontal="true"
                        android:text="00:00"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />

                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton22"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:background="@drawable/btn_04_small"
                        android:textColor="#ffa5ff45" />


                    <TextView
                        android:id="@+id/textView62"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignTop="@+id/imageButton22"
                        android:layout_centerHorizontal="true"
                        android:text="Auto OFF"
                        android:textSize="22sp" />


                    <TextView
                        android:id="@+id/textView102"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignBottom="@+id/imageButton22"
                        android:layout_centerHorizontal="true"
                        android:text="00:00"
                        android:textColor="#ffa5ff45"
                        android:textSize="22sp" />


                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton31"
                        android:layout_width="fill_parent"
                        android:layout_height="match_parent"
                        android:layout_marginBottom="-14dp"
                        android:layout_marginTop="7dp"
                        android:background="@drawable/send_btn_01"
                        android:text="SET TIME"
                        android:textSize="22sp" />
                </RelativeLayout>

                <RelativeLayout
                    android:layout_width="wrap_content"
                    android:layout_height="match_parent"
                    android:layout_weight="1">

                    <Button
                        android:id="@+id/imageButton32"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginBottom="-7dp"
                        android:background="@drawable/send_btn_01"
                        android:padding="0dp"
                        android:scaleType="matrix"
                        android:text="RECHARGE"
                        android:textSize="22sp" />
                </RelativeLayout>

            </LinearLayout>
        </LinearLayout>


    </LinearLayout>
</ScrollView>

<ImageView
    android:id="@+id/imageView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:adjustViewBounds="true"
    android:background="#bf000000"
    android:src="@drawable/base_irya_left1" />

2 个答案:

答案 0 :(得分:1)

当屏幕旋转时,应用程序不会重新启动,活动是。

  

警告:每次用户旋转屏幕时,您的活动都将被销毁并重新创建。当屏幕更改方向时,系统会破坏并重新创建前台活动,因为屏幕配置已更改,您的活动可能需要加载其他资源(例如布局)。

http://developer.android.com/training/basics/activity-lifecycle/recreating.html

您能告诉我们ScrollView的XML声明吗?

答案 1 :(得分:1)

活动会在屏幕旋转时被销毁并重新创建,您可能需要这样做,因为它会正确调整所有UI元素的大小。

在单独的单一类中创建蓝牙连接/线程,使其独立于活动,或使其相关活动成员保持静态。

但是,请务必正确销毁它,以免在合法的应用程序生命周期内泄漏/持续存在。