Xamarin Android 菜单 - NavigationView 背景图片和全屏
Xamarin Android Menu - NavigationView background image and fullscreen
我需要有关 Android 中菜单的帮助...
- 首先:我需要背景中的菜单图像
- 其次:如果可以的话最好全屏菜单
我的菜单布局是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
>
<ImageView
android:id="@+id/nav_background"
android:src="@drawable/test_back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="1"
android:scaleType="centerCrop"/>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="end"
android:theme="@style/NavigationViewStyle"
android:fitsSystemWindows="true"
local:itemTextColor="@color/white"
android:background="@color/main_red_opacity"
>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<LinearLayout
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<ImageView
android:layout_marginTop="45dp"
android:layout_marginBottom="45dp"
android:layout_height="1dp"
android:layout_width="match_parent"
android:background="@color/main_gray"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
</LinearLayout>
<ImageView
android:layout_gravity="left"
android:src="@drawable/logo"
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/logoBottom"
android:scaleType="fitCenter" />
</LinearLayout>
</android.support.design.widget.NavigationView>
</RelativeLayout>
</ScrollView>
这可行,但我需要在菜单底部使用菜单项进行布局,但结果是:
没有 ImageView 它看起来像这样:
这是我需要的,但背景是图片...
编辑
<!-- Navigation style -->
<style name="NavigationViewStyle">
<item name="android:textSize">18dp</item>
<!-- menu item text size-->
<item name="android:listPreferredItemHeightSmall">60dp</item>
<!-- menu item height-->
</style>
Github 演示: https://github.com/pinkysek/XabluDemoApp/tree/master/XabluAppTest
将RelativeLayout
改为FrameLayout
:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/test_back"
>
</FrameLayout>
</ScrollView>
并在 FrameLayout
中添加 android:layout_marginLeft="-64dp"
,在 activity_main.axml
布局中的 ID 为 navigation_frame
,如下所示:
<FrameLayout
android:id="@+id/navigation_frame"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_marginLeft="-64dp"
android:layout_gravity="left|start" />
我需要有关 Android 中菜单的帮助...
- 首先:我需要背景中的菜单图像
- 其次:如果可以的话最好全屏菜单
我的菜单布局是这样的:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
>
<ImageView
android:id="@+id/nav_background"
android:src="@drawable/test_back"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:alpha="1"
android:scaleType="centerCrop"/>
<android.support.design.widget.NavigationView
android:id="@+id/navigation_view"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:layout_gravity="end"
android:theme="@style/NavigationViewStyle"
android:fitsSystemWindows="true"
local:itemTextColor="@color/white"
android:background="@color/main_red_opacity"
>
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<LinearLayout
android:layout_marginRight="30dp"
android:layout_marginLeft="30dp"
android:layout_marginTop="50dp"
android:layout_marginBottom="50dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:orientation="vertical">
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<ImageView
android:layout_marginTop="45dp"
android:layout_marginBottom="45dp"
android:layout_height="1dp"
android:layout_width="match_parent"
android:background="@color/main_gray"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
<TextView
android:layout_marginTop="10dp"
android:layout_marginBottom="10dp"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:textSize="22dp"
android:id="@+id/nav_menuItem"
android:text="MenuItem"
android:textColor="@color/white"
/>
</LinearLayout>
<ImageView
android:layout_gravity="left"
android:src="@drawable/logo"
android:layout_width="match_parent"
android:layout_height="50dp"
android:id="@+id/logoBottom"
android:scaleType="fitCenter" />
</LinearLayout>
</android.support.design.widget.NavigationView>
</RelativeLayout>
</ScrollView>
这可行,但我需要在菜单底部使用菜单项进行布局,但结果是:
没有 ImageView 它看起来像这样:
这是我需要的,但背景是图片...
编辑
<!-- Navigation style -->
<style name="NavigationViewStyle">
<item name="android:textSize">18dp</item>
<!-- menu item text size-->
<item name="android:listPreferredItemHeightSmall">60dp</item>
<!-- menu item height-->
</style>
Github 演示: https://github.com/pinkysek/XabluDemoApp/tree/master/XabluAppTest
将RelativeLayout
改为FrameLayout
:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="start"
android:background="@drawable/test_back"
>
</FrameLayout>
</ScrollView>
并在 FrameLayout
中添加 android:layout_marginLeft="-64dp"
,在 activity_main.axml
布局中的 ID 为 navigation_frame
,如下所示:
<FrameLayout
android:id="@+id/navigation_frame"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_marginLeft="-64dp"
android:layout_gravity="left|start" />