Android之ASD组件(一)
Google在android5.0之后推出新設計標準Material Design,為了能在低版本上使用Material Design,google發布了Android Support Design支持庫。
下面我們看看該庫中提供的一些組件的用法
SnackBar該組件是介于Toast和Dialog之間的一種提示信息組件,用法和Toast有點類似。SnackBar中常用的方法如下:
1、public static Snackbar make(@NonNull View view, @StringRes int resId, @Duration int duration):靜態方法,使用字符串資源構建一個SnackBar對象 2、public static Snackbar make(@NonNull View view, @NonNull CharSequence text,@Duration int duration) :靜態方法,用于構建一個SnackBar對象。 3、public Snackbar setAction(@StringRes int resId, View.OnClickListener listener):設置SnackBar的動作 4、public Snackbar setAction(CharSequence text, final View.OnClickListener listener):設置SnackBar動作 5、public Snackbar setActionTextColor(ColorStateList colors):設置操作文字顏色 6、public void show():顯示SnackBar。 具體使用案例代碼如下: Snackbar.make(v,"別亂點!!!!",Snackbar.LENGTH_LONG).setAction("OK", new View.OnClickListener() {@Overridepublic void onClick(View v) {show.setText("你點了什么?");} }).show();
?FloatingActionButton組件是一個項目中常見的圓形按鈕,該組件是繼承自ImageView,該組件提供了一些屬性用于設置樣式,具體如下:
1、app:borderWidth:邊框的寬度
2、app:backgroundTint:FloatingActionButton的背景色
3、app:rippleColor:FloatingActionButton被點擊時的顏色
4、app:fabSize:FloatingActionButton的大
5、app:elevation:FloatingActionButton的海拔高度
CoordinatorLayout組件是一個布局組件,實現了Material Design中滾動動畫效果,主要功能一是作為布局容器,而是協調子View實現滾動動畫效果。
使用以上三個組件完成案例效果如下圖所示:
具體的布局文件內容如下:
TabLayout是tab容器,有了TabLayout我們可以方便的實現Tabs+ViewPager+Fragment的經典界面結構。TabLayout是繼承了HorizontalScrollView,所有具備ScollView的特性。使用如下屬性可定制Tab的顯示樣式
1、? app:tabIndicatorColor:指示器的顏色 2、? app:tabIndicatorHeight:指示器的高度 3、? app:tabSelectedTextColor:選中Tab的文字顏色 4、? app:tabMode:Tab的模式 5、? app:tabTextAppearance:Tab字體樣式 使用TabLayout案例的具體展示效果如下:在該案例中要注意的地方有兩點:
1、ViewPager的adapter要實現getPageTitle方法,TabLayout中的Tab中文字內容從該方法中獲取。 2、要先為ViewPager設置adapter,后再依次調用TabLayout的方法 a)? setTabsFromPagerAdapter b)? setupWithViewPager 具體代碼如下: public class TabsActivity extends AppCompatActivity {private Toolbar toolbar;private TabLayout tabs;private ViewPager viewPager;private List<View> pagerData ;String[] titles=new String[]{"推薦","熱點","煙臺","社會","視頻"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.tabs_layout);toolbar = (Toolbar)findViewById(R.id.toolbar);setSupportActionBar(toolbar);ActionBar actionBar = getSupportActionBar();actionBar.setTitle("杰瑞教育");actionBar.setDisplayHomeAsUpEnabled(true);tabs = (TabLayout)findViewById(R.id.tabs);viewPager=(ViewPager)findViewById(R.id.viewPager);initPagerData();MyPageAdapter adapter = new MyPageAdapter();viewPager.setAdapter(adapter);tabs.setTabsFromPagerAdapter(viewPager.getAdapter());tabs.setupWithViewPager(viewPager);}private void initPagerData(){pagerData = new ArrayList<>();for(int i=0;i<titles.length;i++) {TextView textView = new TextView(this);textView.setText(titles[i]);pagerData.add(textView);}}private class MyPageAdapter extends PagerAdapter{@Overridepublic int getCount() {return pagerData.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view==object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View view = pagerData.get(position);container.addView(view);return view;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView(pagerData.get(position));}@Overridepublic CharSequence getPageTitle(int position) {return titles[position];}} }?
作者:杰瑞教育出處:http://www.cnblogs.com/jerehedu/?
版權聲明:本文版權歸煙臺杰瑞教育科技有限公司和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
技術咨詢:
轉載于:https://www.cnblogs.com/jerehedu/p/5063281.html
總結
以上是生活随笔為你收集整理的Android之ASD组件(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 历时八年 HTML5标准终于制定完成
- 下一篇: 01.The Introduction