Merge "Add use of NavigationView without drawer" into mnc-ub-dev

am: 6e96f544ef

* commit '6e96f544ef706d02a91f59215516769b8cf86106':
  Add use of NavigationView without drawer
This commit is contained in:
Yuichi Araki
2015-12-04 04:24:40 +00:00
committed by android-build-merger
6 changed files with 194 additions and 54 deletions

View File

@@ -55,6 +55,15 @@
</intent-filter>
</activity>
<activity android:name=".widget.NavigationViewWithoutDrawer"
android:label="@string/design_navigation_without_drawer"
android:theme="@style/Theme.Design">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="com.example.android.support.design.SAMPLE_CODE" />
</intent-filter>
</activity>
<activity android:name=".widget.TabLayoutUsage"
android:label="@string/design_tabs_basic"
android:theme="@style/Theme.Design">

View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2015 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/com.example.android.support.design"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.NavigationView
android:id="@+id/navigation"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
app:menu="@menu/navigation"/>
<TextView
android:id="@+id/message"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:freezesText="true"
android:gravity="center"
android:text="@string/navigation_1"
android:textAppearance="?android:attr/textAppearanceLarge"/>
</LinearLayout>

View File

@@ -19,6 +19,7 @@
<string name="design_fab">Floating Action Button/Basic</string>
<string name="design_navigation">NavigationView/Usage</string>
<string name="design_navigation_without_drawer">NavigationView/Without drawer</string>
<string name="design_tabs_basic">TabLayout/Usage</string>
<string name="design_text_input">Text Input</string>
<string name="design_bottomsheet_persistent">BottomSheet/Persistent</string>

View File

@@ -22,30 +22,23 @@ import android.os.Bundle;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.TypedValue;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
/**
* This demonstrates basic usage of NavigationView
*/
public class NavigationViewUsage extends AppCompatActivity {
public class NavigationViewUsage extends NavigationViewUsageBase {
private DrawerLayout mDrawerLayout;
private TextView mTextMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.design_navigation);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mTextMessage = (TextView) findViewById(R.id.message);
// Set the color of status bar
TypedValue value = new TypedValue();
@@ -64,56 +57,25 @@ public class NavigationViewUsage extends AppCompatActivity {
mDrawerLayout.openDrawer(GravityCompat.START);
}
});
// Menu
NavigationView navigation = (NavigationView) findViewById(R.id.navigation);
navigation.setNavigationItemSelectedListener(mNavigationItemSelectedListener);
navigation.inflateHeaderView(R.layout.design_navigation_header);
}
private NavigationView.OnNavigationItemSelectedListener mNavigationItemSelectedListener
= new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
if (handleNavigationItemSelected(item)) {
mDrawerLayout.closeDrawers();
return true;
}
return false;
}
};
@Override
protected int getLayout() {
return R.layout.design_navigation;
}
private boolean handleNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_item_1:
mTextMessage.setText("1");
return true;
case R.id.navigation_item_2:
mTextMessage.setText("2");
return true;
case R.id.navigation_item_3:
mTextMessage.setText("3");
return true;
case R.id.navigation_sub_item_1:
showToast(R.string.navigation_sub_item_1);
return true;
case R.id.navigation_sub_item_2:
showToast(R.string.navigation_sub_item_2);
return true;
case R.id.navigation_with_icon:
showToast(R.string.navigation_item_with_icon);
return true;
case R.id.navigation_without_icon:
showToast(R.string.navigation_item_without_icon);
return true;
default:
@Override
public NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
return new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
if (handleNavigationItemSelected(item)) {
mDrawerLayout.closeDrawers();
return true;
}
return false;
}
}
private void showToast(int res) {
Toast.makeText(this, getString(R.string.navigation_message, getString(res)),
Toast.LENGTH_SHORT).show();
}
};
}
@Override

View File

@@ -0,0 +1,84 @@
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.support.design.widget;
import com.example.android.support.design.R;
import android.os.Bundle;
import android.support.annotation.LayoutRes;
import android.support.design.widget.NavigationView;
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;
import android.widget.TextView;
import android.widget.Toast;
public abstract class NavigationViewUsageBase extends AppCompatActivity {
private TextView mTextMessage;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayout());
mTextMessage = (TextView) findViewById(R.id.message);
// Menu
NavigationView navigation = (NavigationView) findViewById(R.id.navigation);
navigation.setNavigationItemSelectedListener(getNavigationItemSelectedListener());
navigation.inflateHeaderView(R.layout.design_navigation_header);
}
@LayoutRes
protected abstract int getLayout();
protected abstract NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener();
protected boolean handleNavigationItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.navigation_item_1:
mTextMessage.setText("1");
return true;
case R.id.navigation_item_2:
mTextMessage.setText("2");
return true;
case R.id.navigation_item_3:
mTextMessage.setText("3");
return true;
case R.id.navigation_sub_item_1:
showToast(R.string.navigation_sub_item_1);
return true;
case R.id.navigation_sub_item_2:
showToast(R.string.navigation_sub_item_2);
return true;
case R.id.navigation_with_icon:
showToast(R.string.navigation_item_with_icon);
return true;
case R.id.navigation_without_icon:
showToast(R.string.navigation_item_without_icon);
return true;
default:
return false;
}
}
private void showToast(int res) {
Toast.makeText(this, getString(R.string.navigation_message, getString(res)),
Toast.LENGTH_SHORT).show();
}
}

View File

@@ -0,0 +1,44 @@
/*
* Copyright (C) 2015 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.example.android.support.design.widget;
import com.example.android.support.design.R;
import android.support.design.widget.NavigationView;
import android.view.MenuItem;
/**
* This demonstrates basic usage of NavigationView
*/
public class NavigationViewWithoutDrawer extends NavigationViewUsageBase {
@Override
protected int getLayout() {
return R.layout.design_navigation_without_drawer;
}
@Override
protected NavigationView.OnNavigationItemSelectedListener getNavigationItemSelectedListener() {
return new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem item) {
return handleNavigationItemSelected(item);
}
};
}
}