我正在Android Studio中进行大学项目,但是遇到了这个问题:菜单从横向转换为纵向,反之亦然。
这是浮动操作菜单肖像(menu_piu.xml)的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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">
<com.github.clans.fab.FloatingActionMenu
android:id="@+id/menu_floating"
android:layout_width="285dp"
android:layout_height="315dp"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentStart="true"
android:layout_marginBottom="10dp"
android:layout_marginEnd="16dp"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="1.0"
app:menu_animationDelayPerItem="50"
app:menu_backgroundColor="@android:color/transparent"
app:menu_buttonSpacing="0dp"
app:menu_colorNormal="@color/colorPrimary"
app:menu_colorPressed="@color/colorAccent"
app:menu_colorRipple="#99FFFFFF"
app:menu_fab_size="normal"
app:menu_icon="@drawable/fab_add"
app:menu_labels_colorNormal="#333333"
app:menu_labels_colorPressed="#444444"
app:menu_labels_colorRipple="#66FFFFFF"
app:menu_labels_cornerRadius="3dp"
app:menu_labels_ellipsize="none"
app:menu_labels_hideAnimation="@anim/fab_slide_out_to_left"
app:menu_labels_margin="0dp"
app:menu_labels_maxLines="-1"
app:menu_labels_padding="8dp"
app:menu_labels_paddingBottom="4dp"
app:menu_labels_paddingLeft="8dp"
app:menu_labels_paddingRight="8dp"
app:menu_labels_paddingTop="4dp"
app:menu_labels_position="right"
app:menu_labels_showAnimation="@anim/fab_slide_in_from_left"
app:menu_labels_showShadow="true"
app:menu_labels_singleLine="false"
app:menu_labels_textColor="#FFFFFF"
app:menu_labels_textSize="14sp"
app:menu_openDirection="up"
app:menu_shadowColor="#66000000"
app:menu_shadowRadius="4dp"
app:menu_shadowXOffset="1dp"
app:menu_shadowYOffset="3dp"
app:menu_showShadow="true">
<com.github.clans.fab.FloatingActionButton
android:id="@+id/aggiornamento_stato"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ico_aggiornamento_stato"
app:fab_colorNormal="@color/colorPrimary"
app:fab_colorPressed="@color/colorAccent"
app:fab_colorRipple="#FFFFFF"
app:fab_label="Aggiornamento stato" />
<com.github.clans.fab.FloatingActionButton
android:id="@+id/ricerca"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ico_ricerca"
app:fab_colorNormal="@color/colorPrimary"
app:fab_colorPressed="@color/colorAccent"
app:fab_colorRipple="#FFFFFF"
app:fab_label="Ricerca" />
<com.github.clans.fab.FloatingActionButton
android:id="@+id/profilo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ico_profilo"
app:fab_colorNormal="@color/colorPrimary"
app:fab_colorPressed="@color/colorAccent"
app:fab_colorRipple="#FFFFFF"
app:fab_label="Profilo" />
<com.github.clans.fab.FloatingActionButton
android:id="@+id/lista_amici"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ico_amici"
app:fab_colorNormal="@color/colorPrimary"
app:fab_colorPressed="@color/colorAccent"
app:fab_colorRipple="#FFFFFF"
app:fab_label="Lista amici" />
</com.github.clans.fab.FloatingActionMenu>
其他菜单(menu_piu_land.xml)相同,但没有浮动操作菜单。它应该水平显示按钮以简化项目。
我将这些文件包含在layout \ activity_home.xml(<include layout="@layout/menu_piu"/>
)和land \ activity_home.xml(<include layout="@layout/menu_piu_land"/>
)中。
当我在Android Studio模拟器中测试该应用程序时,它更改了视图,但没有更改菜单:显示的首页与开始时的显示方式相同。我在做什么错了?
更新
这是activity_home.xml和land \ activity_home.xml的代码:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout 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"
tools:context="com.example.punta.geopost.home">
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
<include layout="@layout/menu_piu"/> // <include layout="@layout/menu_piu_land"/>
</android.support.constraint.ConstraintLayout>
这是我的清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.punta.geopost">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="AIzaSyA8fzesjeCV0_X3PolMIXc9DbZ1er05-SA"/>
<activity
android:name=".login"
android:noHistory="true"
android:configChanges="orientation|screenSize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".home"
android:configChanges="orientation|screenSize" />
<activity
android:name=".profilo"
android:configChanges="orientation|screenSize" />
<activity
android:name=".ricerca"
android:configChanges="orientation|screenSize" />
<activity
android:name=".stato"
android:configChanges="orientation|screenSize" />
<activity
android:name=".amici"
android:configChanges="orientation|screenSize" />
</application>
答案 0 :(得分:1)
了解“ Android活动生命周期”。它们对于您的应用程序流程至关重要。 每当活动改变方向时,onCreate()方法都会重新启动,因此您可以使用 savedInstanceState 。您必须在那里检查这些更改。 并在此处发布清单文件。
希望这会有所帮助。
答案 1 :(得分:1)
正确的文件夹是:
快乐的编码和学习!
P.S .:避免硬编码,将字符串移动到strings.xml,将值移动到dimens.xml
答案 2 :(得分:1)
问题是清单中的android:configChanges =“ orientation | screenSize”。此标志阻止您在配置更改时重新创建活动,因此永远不会从活动中选择横向布局。从manifest.xml的活动“ home”中删除该标志
<activity android:name=".home" />