MainActivity
package bw.com.bw_day13;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import bw.com.bw_day13.demo01.Main2Activity;
import bw.com.bw_day13.demo02.FloatingActionActivity;
import bw.com.bw_day13.demo03.SnackbarActivity;
import bw.com.bw_day13.demo04.TabLayoutActivity;
import bw.com.bw_day13.demo05.NavigationViewActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
Intent intent = new Intent();
switch (view.getId())
{
case R.id.but_01:
intent.setClass(this, Main2Activity.class);
break;
case R.id.but_02:
intent.setClass(this, FloatingActionActivity.class);
break;
case R.id.but_03:
intent.setClass(this, SnackbarActivity.class);
break;
case R.id.but_04:
intent.setClass(this, TabLayoutActivity.class);
break;
case R.id.but_05:
intent.setClass(this, NavigationViewActivity.class);
break;
}
startActivity(intent);
}
}
主布局
<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bw.com.bw_day13.MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TextInputLayout 使用"
android:id="@+id/but_01"
android:onClick="onClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="FloatingActionButton 使用"
android:id="@+id/but_02"
android:onClick="onClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="SnackBar 使用"
android:id="@+id/but_03"
android:onClick="onClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="TabLayout 使用"
android:id="@+id/but_04"
android:onClick="onClick"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="NavigationView 使用"
android:id="@+id/but_05"
android:onClick="onClick"/>
</LinearLayout>
Demo01
Main2Activity
package bw.com.bw_day13.demo01;
import android.support.design.widget.TextInputLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.EditText;
import bw.com.bw_day13.R;
public class Main2Activity extends AppCompatActivity {
private TextInputLayout mTextInputLayout;
private EditText mEt;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
mTextInputLayout = (TextInputLayout) findViewById(R.id.til_id);
mEt = (EditText) findViewById(R.id.et_id);
//监听输入框内容的改变的监听器
mEt.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if(s!=null)
{
//设置取消错误信息的显示
mTextInputLayout.setErrorEnabled(false);
}
}
});
}
public void onClick(View view) {
String content = mEt.getText().toString().trim();//获取输入框的内容
if(content.isEmpty())
{
mTextInputLayout.setErrorEnabled(true);//设置错误信息显示
mTextInputLayout.setError("您还没有数据任何信息");//设置错误信息
}
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bw.com.bw_day13.demo01.Main2Activity">
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/til_id">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入您的账号"
android:id="@+id/et_id"
/>
</android.support.design.widget.TextInputLayout>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="取款"
android:onClick="onClick"
/>
</LinearLayout>
Demo02
FloatingActionActivity
package bw.com.bw_day13.demo02;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import bw.com.bw_day13.R;
public class FloatingActionActivity extends AppCompatActivity {
private ListView mLv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_floating_action);
mLv = (ListView) findViewById(R.id.lv_id);
List<String> data = new ArrayList<>();
for(int i = 0;i<100;i++)
{
data.add("数据 ---- " + i);
}
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
mLv.setAdapter(adapter);
}
public void onClick(View view) {
//点击浮动按钮, 让ListView 中 的数据, 返回第一条数据
mLv.setSelection(0);
// recycleView.scrollToPosition(position); 返回第一条
}
}
布局
package bw.com.bw_day13.demo02;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
import java.util.List;
import bw.com.bw_day13.R;
public class FloatingActionActivity extends AppCompatActivity {
private ListView mLv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_floating_action);
mLv = (ListView) findViewById(R.id.lv_id);
List<String> data = new ArrayList<>();
for(int i = 0;i<100;i++)
{
data.add("数据 ---- " + i);
}
ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1,data);
mLv.setAdapter(adapter);
}
public void onClick(View view) {
//点击浮动按钮, 让ListView 中 的数据, 返回第一条数据
mLv.setSelection(0);
// recycleView.scrollToPosition(position); 返回第一条
}
}
demo03
SnackbarActivity
package bw.com.bw_day13.demo03;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
import bw.com.bw_day13.R;
public class SnackbarActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_snackbar);
}
public void showToast(View view) {
Toast.makeText(this, "吐个丝...........", Toast.LENGTH_SHORT).show();
}
public void showSnackbar(View view) {
Snackbar.make(view,"我心中一直有个梦,想去嵩山少林学武功.....",Snackbar.LENGTH_LONG)
.setAction("退出", new View.OnClickListener() {
@Override
public void onClick(View v) {
SnackbarActivity.this.finish();
}
}).show();
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bw.com.bw_day13.demo03.SnackbarActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出吐司"
android:onClick="showToast"
/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="弹出Snackbar"
android:onClick="showSnackbar"
/>
</LinearLayout>
demo04
BlankFragment
package bw.com.bw_day13.demo04;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import bw.com.bw_day13.R;
public class BlankFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_blank, container, false);
TextView tv = (TextView) view.findViewById(R.id.tv_id);
//获取Activity 传入的参数
Bundle bundle = getArguments();
int tabId = bundle.getInt("tabId");
switch (tabId)
{
case 0:
tv.setText("新闻");
//获取网络数据, 添加RecycleView 中
break;
case 1:
tv.setText("娱乐");
break;
case 2:
tv.setText("体育");
break;
case 3:
tv.setText("财经");
break;
}
return view;
}
}
TabLayoutActivity
package bw.com.bw_day13.demo04;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import java.util.ArrayList;
import java.util.List;
import bw.com.bw_day13.R;
public class TabLayoutActivity extends AppCompatActivity {
//TODO 导航
private TabLayout mTabLayout;
//一组标题
private List<String> titles = new ArrayList<>();
//TODO 页面内容
private ViewPager mViewPager;
private List<Fragment> data = new ArrayList<>();//数据源
private MyAdapter adapter;//适配器
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tab_layout);
mTabLayout = (TabLayout) findViewById(R.id.tab_layout_id);
mViewPager = (ViewPager) findViewById(R.id.view_pager_id);
//TODO 构建标题和内容
titles.add("新闻");
titles.add("娱乐");
titles.add("体育");
titles.add("财经");
for(int i = 0;i<4;i++)
{
BlankFragment fragment = new BlankFragment();
//向Fragment 传值
Bundle bundle = new Bundle();
bundle.putInt("tabId",i);//0--新闻 , 1- 娱乐 , 2 - 体育 , 3 - 财经
fragment.setArguments(bundle);
data.add(fragment);
}
//初始化适配器
adapter = new MyAdapter(getSupportFragmentManager());
//设置适配器
mViewPager.setAdapter(adapter);
//TODO ******* 将 TabLayout 和 ViewPager 绑定在一起
mTabLayout.setupWithViewPager(mViewPager);
}
//自定义ViewPager 适配器
class MyAdapter extends FragmentPagerAdapter
{
public MyAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return data.get(position);
}
@Override
public int getCount() {
return data.size();
}
//TODO ***** -----设置导航标题------
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<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_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="bw.com.bw_day13.demo04.TabLayoutActivity">
<!--
app:tabIndicatorColor="@color/colorAccent" 选中的颜色
app:tabIndicatorHeight="3dp" 选中的高度
app:tabTextColor="" 默认文字的颜色
app:tabSelectedTextColor="" 选中的文字颜色
-->
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="60dp"
android:id="@+id/tab_layout_id"
app:tabIndicatorColor="@color/colorAccent"
app:tabIndicatorHeight="3dp"
app:tabTextColor="#000000"
app:tabSelectedTextColor="@color/colorPrimary"
/>
<android.support.v4.view.ViewPager
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_pager_id"
/>
</LinearLayout>
子布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="bw.com.bw_day13.demo04.BlankFragment">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/tv_id"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/hello_blank_fragment" />
</FrameLayout>
demo05
NavigationViewActivity
package bw.com.bw_day13.demo05;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.MenuItem;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;
import bw.com.bw_day13.R;
public class NavigationViewActivity extends AppCompatActivity {
private DrawerLayout mDl;
private NavigationView mNv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_view);
mDl = (DrawerLayout) findViewById(R.id.drawer_layout_id);
mNv = (NavigationView) findViewById(R.id.navigation_view_id);
//TODO 获取抽屉中的, 头部视图
View view = mNv.getHeaderView(0);
TextView tv = (TextView) view.findViewById(R.id.tv_id);
tv.setTextColor(Color.GREEN);
//TODO 设置每个菜单的点击
mNv.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId())
{
case R.id.action_set:
mDl.closeDrawer(Gravity.LEFT);//关闭左侧抽屉
Toast.makeText(NavigationViewActivity.this, "你点击了 设置", Toast.LENGTH_SHORT).show();
break;
case R.id.action_message:
mDl.closeDrawer(Gravity.LEFT);//关闭左侧抽屉
Toast.makeText(NavigationViewActivity.this, "你点击了 信息", Toast.LENGTH_SHORT).show();
break;
case R.id.action_search:
mDl.closeDrawer(Gravity.LEFT);//关闭左侧抽屉
Toast.makeText(NavigationViewActivity.this, "你点击了 搜索", Toast.LENGTH_SHORT).show();
break;
case R.id.action_clear:
mDl.closeDrawer(Gravity.LEFT);//关闭左侧抽屉
Toast.makeText(NavigationViewActivity.this, "你点击了 清除", Toast.LENGTH_SHORT).show();
break;
}
return false;
}
});
}
}
布局
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.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:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/drawer_layout_id"
tools:context="bw.com.bw_day13.demo05.NavigationViewActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@mipmap/mn"
/>
<!--
app:headerLayout="" 抽屉中头部视图
app:menu="" 导航菜单的资源文件
-->
<android.support.design.widget.NavigationView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/navigation_view_id"
android:layout_gravity = "left"
app:headerLayout="@layout/haead_layout"
app:menu="@menu/main"
/>
</android.support.v4.widget.DrawerLayout>
子布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="200dp"
android:layout_height="200dp"
android:src="@mipmap/dog"
android:id="@+id/iv_id"
android:layout_centerInParent="true"
/>
<TextView
android:id="@+id/tv_id"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="狗年大吉"
android:textColor="@color/colorAccent"
android:textSize="30sp"
android:layout_centerHorizontal="true"
android:layout_below="@id/iv_id"
/>
</RelativeLayout>
注意添加Design的jar包
menu
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/action_set"
android:title="设置"
android:icon="@mipmap/settings"
/>
<item
android:id="@+id/action_message"
android:title="信息"
android:icon="@mipmap/message_icon"
/>
<item
android:id="@+id/action_search"
android:title="搜索"
android:icon="@mipmap/search"
/>
<item
android:id="@+id/action_clear"
android:title="清除"
android:icon="@mipmap/menu"
/>
</menu>