【问题标题】:Android Layout issue of Portrait and LandscapeAndroid纵向和横向布局问题
【发布时间】:2015-12-15 06:44:15
【问题描述】:

朋友们好,我是 Android 开发和 Stackoverflow 的新手, 我在android布局中遇到了一些问题, 我创建了两个布局文件夹,一个用于纵向,一个用于横向(均用于平板电脑 TVDPI)

layout-sw600dp-land-tvdpi & layout-sw600dp-port-tvdpi

我面临的问题是,当我在纵向模式下运行程序时,它会显示正确的纵向布局,但是当我将设备纵向转换为横向时,它会显示相同的纵向布局,并且在我运行它时会出现相同的情况横向模式它运行正确并转向肖像它向我显示横向布局......

为什么?

【问题讨论】:

  • 嘿!你能粘贴你的 manifest.xml 代码吗?
  • 'schemas.android.com/apk/res/android" android:installLocation="auto" android:versionName="2.4" package="abc.com" android:versionCode="5"> '
  • 这不是完整的清单,它没有为默认启动和所有定义的活动。无论如何,如果您想重新创建和重新加载布局,请从您的清单文件中删除 android:configChanges="keyboardHidden|orientation" ..
  • 但我的清单文件中没有 android:configChanges="keyboardHidden|orientation
  • 您好,请不要将您的代码放入 cmets。只需编辑您的帖子即可放置

标签: android android-layout landscape-portrait


【解决方案1】:

试试这个

 #region Handle State on Orientation
    //this has been done using better technique
    protected override void OnSaveInstanceState(Bundle outState)
    {
        base.OnSaveInstanceState(outState);
        //adding spinner/dropdownlist selected item
        if (ViewModel.IsLoading == true)
        {
            isLoadingState = true;
            AndroidHUD.AndHUD.Shared.Dismiss(this);
        }
        var preferences = GetSharedPreferences("TmsAppData", FileCreationMode.Private);
        var editor = preferences.Edit();
        //editor.PutString("DeviceId", registrationId);
        editor.PutBoolean("IsOrientationChange", true);
        editor.Commit();
        //outState.PutInt("_AlreadySelectedPostion", _AlreadySelectedPostion);
        outState.PutBoolean("_isLoadingState", isLoadingState);
    }
    protected override void OnRestoreInstanceState(Bundle savedInstanceState)
    {
        base.OnRestoreInstanceState(savedInstanceState);
        //setting a flag to manage spinner selected state
        _IsStateViewActive = true;
        isLoadingState = savedInstanceState.GetBoolean("_isLoadingState");
        if (ViewModel.IsLoading == true)
        {
            isLoadingState = false;
            ViewModel.IsLoading = true;
        }

        //getting the previous selected item from the saved state for spinner / dropdownlist
        //_AlreadySelectedPostion = savedInstanceState.GetInt("_AlreadySelectedPostion");
    }

    #endregion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多