横向模式在 Android Studio 模拟器中不起作用?
Posted
技术标签:
【中文标题】横向模式在 Android Studio 模拟器中不起作用?【英文标题】:landscape mode not working in Android Studio Emulator? 【发布时间】:2020-01-09 01:16:12 【问题描述】:以下示例来自项目https://github.com/googlecodelabs/android-navigation,布局文件来自https://github.com/googlecodelabs/android-navigation/tree/master/app/src/main/res
我在 Android Studio Emulator 中进行了纵向和横向模式的测试,您可以在 A1.png 和 A2.png 看到结果。
Android Studio Emulator 中似乎无法使用横向模式。
我在真机上测试了同样的代码,你可以在B1.png和B2.png
看到结果横屏模式在真手机上运行良好,Android Studio Emulator 使用横屏模式有什么问题?
顺便说一句,我已阅读文章Switching to landscape mode in Android Emulator
navigation_activity.xml
<androidx.drawerlayout.widget.DrawerLayout
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:id="@+id/drawer_layout"
android:layout_
android:layout_
tools:context="com.example.android.codelabs.navigation.MainActivity">
<LinearLayout
android:layout_
android:layout_
android:orientation="vertical">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
<fragment
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_
android:layout_
app:defaultNavHost="true"
app:navGraph="@navigation/mobile_navigation" />
</LinearLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_
android:layout_
android:layout_gravity="start"
app:menu="@menu/nav_drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
navigation_activity.xml(h470dp)
<LinearLayout
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_
android:layout_
android:orientation="vertical"
tools:context="com.example.android.codelabs.navigation.MainActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
<fragment
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_
android:layout_
android:layout_weight="1"
app:defaultNavHost="true"
app:navGraph="@navigation/mobile_navigation" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_nav_view"
android:layout_
android:layout_
app:menu="@menu/bottom_nav_menu" />
</LinearLayout>
navigation_activity.xml (w960dp)
<RelativeLayout
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_
android:layout_
tools:context="com.example.android.codelabs.navigation.MainActivity">
<com.google.android.material.navigation.NavigationView
android:id="@+id/nav_view"
android:layout_
android:layout_
android:layout_alignParentStart="true"
app:elevation="0dp"
app:headerLayout="@layout/nav_view_header"
app:menu="@menu/nav_drawer_menu" />
<View
android:layout_
android:layout_
android:layout_toEndOf="@id/nav_view"
android:background="?android:attr/listDivider" />
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_
android:layout_
android:layout_alignParentTop="true"
android:layout_toEndOf="@id/nav_view"
android:background="@color/colorPrimary"
android:theme="@style/ThemeOverlay.MaterialComponents.Dark.ActionBar" />
<fragment
android:id="@+id/my_nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_
android:layout_
android:layout_below="@id/toolbar"
android:layout_toEndOf="@id/nav_view"
app:defaultNavHost="true"
app:navGraph="@navigation/mobile_navigation" />
</RelativeLayout>
A1.png
A2.png
B1.png
B2.png
添加内容
致无名:谢谢!
我按照你的方法测试了一下,Android Studio 3.5 中横屏模式的模拟器好像还不好用。
真手机横屏菜单图标在横屏模拟器中不显示,可以看到C1.png,为什么? B2.png 是真正的手机横屏模式
C1.png
【问题讨论】:
【参考方案1】:因为在模拟器控件中单击左旋转/右旋转后,您还需要在右下部分设置设备内部的旋转。
之前
之后
【讨论】:
谢谢!请您看看我在问题中添加的内容吗? 我能问一下为什么“仅在横向”中存在汉堡包样式吗?您是否将其添加到您的代码中? 必须单击两个按钮来旋转设备和屏幕有什么意义?以上是关于横向模式在 Android Studio 模拟器中不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
markdown Android Studio中的横向模式。
如何在 Android Studio 1.4 中创建横向布局
android studio中的纵向到横向视频视图和控制器重启问题
在 Android Studio 中使用 ActivityInstrumentationTestCase2 在横向测试 Android 应用程序