Orientation Change Crash Application
Solution 1:
<activityandroid:name=".SignUp"android:configChanges="keyboardHidden|orientation|screenSize">
Add this line to all your activities to avoid crash with orientation changes. This will avoid the activity being loaded again and again on orientation changes.
For a little more information what you actually do with configChanges
here the link to the Android documentation.
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its onConfigurationChanged() method is called.
Note: Using this attribute should be avoided and used only as a last resort. Please read Handling Runtime Changes for more information about how to properly handle a restart due to a configuration change.
And how to handle configuration changes
you can find here.
Solution 2:
android:configChanges="keyboardHidden|orientation"
add this in your manifest file in your activity.
Solution 3:
Use
import android.support.v4.app.Fragment;
instead of
import android.app.Fragment;
You might also need to change your activity to extend FragmentActivity instead of just Activity. More discussion Here.
Solution 4:
add this in all your activities in Manifest
android:configChanges="keyboard|orientation|locale|fontScale|screenLayout|screenSize|uiMode|navigation|touchscreen|keyboardHidden|layoutDirection|smallestScreenSize"
Solution 5:
There is another case I found If you use different XML for Portrait and Landscape. Then different root element or view may lead to crash for example --
My Portrait XML is --
<?xml version="1.0" encoding="utf-8"?><RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/login_page_back_gradient"android:orientation="vertical"tools:context="com.thepsi.beintent.LoginPage"android:id="@+id/parent_login_page"><ScrollViewandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_centerVertical="true"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:layout_marginLeft="@dimen/linear_right_20dp"android:layout_marginRight="@dimen/linear_right_20dp"><ImageViewandroid:id="@+id/img_logo"android:layout_width="100dp"android:layout_height="100dp"android:layout_centerHorizontal="true"android:layout_gravity="center"android:scaleType="fitXY"android:src="@drawable/beintent_logo" /><EditTextandroid:id="@+id/editTextLoginEmail"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/img_logo"android:layout_marginTop="@dimen/margin_between_views_login_page"android:background="@drawable/box_edittext"android:hint="@string/email_login"android:inputType="textEmailAddress"android:padding="10dp"android:textStyle="bold" /><EditTextandroid:id="@+id/editTextLoginPassword"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/editTextLoginEmail"android:layout_gravity="center"android:layout_marginTop="12dp"android:background="@drawable/box_edittext"android:hint="@string/password_login"android:inputType="textPassword"android:padding="10dp"android:textStyle="bold" /><CheckBoxandroid:id="@+id/checkBoxLoginPage"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/editTextLoginPassword"android:layout_gravity="center"android:layout_marginTop="10dp"android:textColor="@android:color/white"android:textStyle="bold"app:buttonTint="@android:color/white" /><TextViewandroid:id="@+id/txt_check_box_lbl"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/checkBoxLoginPage"android:layout_alignTop="@+id/checkBoxLoginPage"android:layout_gravity="center_vertical"android:gravity="center"android:layout_marginLeft="10dp"android:layout_toRightOf="@+id/checkBoxLoginPage"android:text="@string/remember_me_login"android:textColor="@android:color/white"android:textSize="@dimen/forgot_rember_text_size"android:textStyle="bold" /><TextViewandroid:id="@+id/txt_question_mark"android:layout_width="24dp"android:layout_height="wrap_content"android:layout_below="@+id/checkBoxLoginPage"android:layout_marginLeft="5dp"android:layout_marginTop="10dp"android:background="@drawable/circle_background_red"android:gravity="center"android:text="@string/questionMark"android:textAlignment="center"android:textColor="@android:color/white"android:textSize="18sp"android:textStyle="bold" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/txt_question_mark"android:layout_alignLeft="@+id/txt_check_box_lbl"android:layout_alignTop="@+id/txt_question_mark"android:layout_gravity="center_vertical"android:layout_toRightOf="@id/txt_question_mark"android:text="@string/forgot_password_login_page"android:textColor="@android:color/white"android:textSize="@dimen/forgot_rember_text_size"android:textStyle="bold" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/txt_question_mark"android:layout_marginTop="@dimen/margin_between_views_login_page"android:gravity="center"android:orientation="horizontal"><Buttonandroid:id="@+id/btn_login"android:layout_width="0dp"android:layout_height="@dimen/button_height_loginpage"android:layout_gravity="center"android:layout_marginEnd="5dp"android:layout_marginRight="5dp"android:layout_weight="1"android:background="@drawable/common_btn_selecter"android:ems="10"android:onClick="LoginButtonClicked"android:text="@string/log_in_login_page"android:textColor="#fff"android:textSize="@dimen/login_page_button_text_size"android:textStyle="bold" /><Buttonandroid:id="@+id/btn_sign_up"android:layout_width="0dp"android:layout_height="@dimen/button_height_loginpage"android:layout_gravity="center"android:layout_marginLeft="5dp"android:layout_marginStart="5dp"android:layout_weight="1"android:background="@drawable/common_btn_selecter"android:ems="10"android:onClick="SignUpButtonClicked"android:text="@string/sign_up_login_page"android:textColor="#fff"android:textSize="@dimen/login_page_button_text_size"android:textStyle="bold" /></LinearLayout></RelativeLayout></ScrollView><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:gravity="center_horizontal"android:orientation="horizontal"android:paddingBottom="10dp"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:clickable="true"android:gravity="end"android:onClick="OnContactUsClicked"android:text="@string/contact_us"android:textColor="@android:color/white"android:textSize="16sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginEnd="@dimen/margin_for_seperator"android:layout_marginLeft="@dimen/margin_for_seperator"android:layout_marginRight="@dimen/margin_for_seperator"android:layout_marginStart="@dimen/margin_for_seperator"android:gravity="end"android:text="@string/seperator"android:textColor="@android:color/white"android:textSize="16sp" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:clickable="true"android:gravity="start"android:onClick="OnTermAndConditionsClicked"android:text="@string/terms_and_conditions"android:textColor="@android:color/white"android:textSize="16sp" /></LinearLayout></RelativeLayout>
My Landscape xml is --
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login_page_back_gradient"
android:orientation="vertical"
android:fillViewport="true"
tools:context="com.thepsi.beintent.LoginPage"
android:id="@+id/parent_login_page">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/login_page_back_gradient"
android:orientation="vertical"
android:id="@+id/parent_container"
tools:context="com.thepsi.beintent.LoginPage">
<RelativeLayout
android:id="@+id/upper_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginLeft="@dimen/linear_right_20dp"
android:layout_marginRight="@dimen/linear_right_20dp"
android:layout_centerVertical="true"
android:layout_marginBottom="40dp"
android:layout_gravity="center">
<ImageView
android:id="@+id/img_logo"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
android:scaleType="fitXY"
android:src="@drawable/beintent_logo" />
<EditText
android:id="@+id/editTextLoginEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/img_logo"
android:layout_marginTop="@dimen/margin_between_views_login_page"
android:background="@drawable/box_edittext"
android:hint="@string/email_login"
android:inputType="textEmailAddress"
android:padding="10dp"
android:textStyle="bold" />
<EditText
android:id="@+id/editTextLoginPassword"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/editTextLoginEmail"
android:layout_gravity="center"
android:layout_marginTop="12dp"
android:background="@drawable/box_edittext"
android:hint="@string/password_login"
android:inputType="textPassword"
android:padding="10dp"
android:textStyle="bold" />
<CheckBox
android:id="@+id/checkBoxLoginPage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/editTextLoginPassword"
android:layout_gravity="center"
android:layout_marginTop="10dp"
android:textColor="@android:color/white"
android:textStyle="bold"
app:buttonTint="@android:color/white" />
<TextView
android:id="@+id/txt_check_box_lbl"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/checkBoxLoginPage"
android:layout_alignTop="@+id/checkBoxLoginPage"
android:layout_gravity="center_vertical"
android:gravity="center"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/checkBoxLoginPage"
android:text="@string/remember_me_login"
android:textColor="@android:color/white"
android:textSize="@dimen/forgot_rember_text_size"
android:textStyle="bold" />
<TextView
android:id="@+id/txt_question_mark"
android:layout_width="24dp"
android:layout_height="wrap_content"
android:layout_below="@+id/checkBoxLoginPage"
android:layout_marginLeft="5dp"
android:layout_marginTop="10dp"
android:background="@drawable/circle_background_red"
android:gravity="center"
android:text="@string/questionMark"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textSize="18sp"
android:textStyle="bold" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/txt_question_mark"
android:layout_alignLeft="@+id/txt_check_box_lbl"
android:layout_alignTop="@+id/txt_question_mark"
android:layout_gravity="center_vertical"
android:layout_toRightOf="@id/txt_question_mark"
android:text="@string/forgot_password_login_page"
android:textColor="@android:color/white"
android:textSize="@dimen/forgot_rember_text_size"
android:textStyle="bold" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/txt_question_mark"
android:layout_marginTop="@dimen/margin_between_views_login_page"
android:gravity="center"
android:orientation="horizontal">
<Button
android:id="@+id/btn_login"
android:layout_width="0dp"
android:layout_height="@dimen/button_height_loginpage"
android:layout_gravity="center"
android:layout_marginEnd="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:background="@drawable/common_btn_selecter"
android:ems="10"
android:onClick="LoginButtonClicked"
android:text="@string/log_in_login_page"
android:textColor="#fff"
android:textSize="@dimen/login_page_button_text_size"
android:textStyle="bold" />
<Button
android:id="@+id/btn_sign_up"
android:layout_width="0dp"
android:layout_height="@dimen/button_height_loginpage"
android:layout_gravity="center"
android:layout_marginLeft="5dp"
android:layout_marginStart="5dp"
android:layout_weight="1"
android:background="@drawable/common_btn_selecter"
android:ems="10"
android:onClick="SignUpButtonClicked"
android:text="@string/sign_up_login_page"
android:textColor="#fff"
android:textSize="@dimen/login_page_button_text_size"
android:textStyle="bold" />
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:id="@+id/linear_layout_contact_us"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center_horizontal|bottom"
android:orientation="horizontal"
android:layout_below="@+id/upper_container"
android:paddingBottom="10dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="end"
android:onClick="OnContactUsClicked"
android:text="@string/contact_us"
android:textColor="@android:color/white"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/margin_for_seperator"
android:layout_marginLeft="@dimen/margin_for_seperator"
android:layout_marginRight="@dimen/margin_for_seperator"
android:layout_marginStart="@dimen/margin_for_seperator"
android:gravity="end"
android:text="@string/seperator"
android:textColor="@android:color/white"
android:textSize="16sp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:gravity="start"
android:onClick="OnTermAndConditionsClicked"
android:text="@string/terms_and_conditions"
android:textColor="@android:color/white"
android:textSize="16sp" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
Might be helpful to someone.
Post a Comment for "Orientation Change Crash Application"