Design的简单应用

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>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值