日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Metail Design各个控件(二)

發(fā)布時間:2025/6/17 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Metail Design各个控件(二) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言:

?  SDK更新的歷史上幾個特別重要的版本144.0)19(4.4)21(5.0),這是有差異的就放到各自的版本中,沒有差異的就放到value中,這里是版本兼容開發(fā).

舉個列子:

  這里底部導(dǎo)航欄的顏色屬性只有5.x以上才有,所以最好寫到values-21里面

<!--底部導(dǎo)航欄顏色,這里只有5.x以上的才能設(shè)置,所以最好放到API 21里,低于這個的不起作用--> <item name="android:navigationBarColor">@color/colorPrimaryDark</item>

?

Metail Design代表控件:

1.android.support.v7.app.AlertDialog

效果比AlertDialog好看點(diǎn),如圖:

?

2.風(fēng)格可以盡量用AppCompat類型的風(fēng)格:

1 <ProgressBar 2 android:layout_width="match_parent" 3 android:layout_height="wrap_content" 4 style="@style/Widget.AppCompat.ProgressBar.Horizontal" 5 android:id="@+id/progressbar_horizontal" 6 android:max="100" 7 android:progress="80" 8 />

?

?style="@style/Widget.AppCompat.ProgressBar.Horizontal"就是采用的材料風(fēng)格

?

?

?3.android.support.v4.widget.SwipeRefreshLayout

?

最好里面包裹一層 ScrollView,這樣才有滑動效果,一下是簡單用法

?

mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {@Overridepublic void onRefresh() {Log.i(TAG, "onRefresh: 進(jìn)行中......."+Thread.currentThread().getName());new Thread(new Runnable() {@Overridepublic void run() {try {Thread.currentThread().sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}runOnUiThread(new Runnable() {@Overridepublic void run() {mSwipeRefreshLayout.setRefreshing(false);}});}}).start();}});mSwipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);mSwipeRefreshLayout.setColorSchemeColors(Color.RED,Color.GREEN,Color.BLUE);mSwipeRefreshLayout.setProgressBackgroundColorSchemeColor(Color.YELLOW);mSwipeRefreshLayout.setDistanceToTriggerSync(110);

?

?

?4.LinearLayoutCompat

?替代LinearLayout,可以給每個控件加一層間隔線

?

<android.support.v7.widget.LinearLayoutCompatandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"app:divider="@drawable/abc_list_divider_mtrl_alpha"app:showDividers="middle">

這里也可以采用appCompat里面的資源,如@drawable/abc_list_divider_mtrl_alpha,

?divider和showDividers是LinearLayoutCompat的特有屬性,效果如圖:

?

?

5.ListPopupWindow

private void showListPopWindows() {final String[]items={"條目0","條目1","條目2","條目3","條目4","條目5","條目6","條目7"};final ListPopupWindow listPopupWindow = new ListPopupWindow(this);listPopupWindow.setAdapter(new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,items));listPopupWindow.setAnchorView(mBtShowPup);//設(shè)置錨點(diǎn)listPopupWindow.setWidth(300);listPopupWindow.setHeight(500);listPopupWindow.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {Toast.makeText(AppCompatWigetActivity.this, "點(diǎn)擊--"+items[i], Toast.LENGTH_SHORT).show();listPopupWindow.dismiss();}});listPopupWindow.show();}

?

?展示效果如圖:

?

?

?6.PopupMenu

?在res下面定義menu,編寫item

<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/action_setting" android:orderInCategory="100" android:icon="@android:drawable/ic_menu_set_as" android:title="設(shè)置" ></item><item android:id="@+id/action_share" android:orderInCategory="100"android:icon="@android:drawable/ic_menu_share" android:title="分享" ></item><item android:id="@+id/action_add" android:orderInCategory="100"android:icon="@android:drawable/ic_menu_add" android:title="添加" ></item> </menu>

?

private void showMenu() {PopupMenu popupMenu = new PopupMenu(this, mBtShowMenu, Gravity.CENTER);popupMenu.getMenuInflater().inflate(R.menu.main,popupMenu.getMenu());popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {@Overridepublic boolean onMenuItemClick(MenuItem item) {switch (item.getItemId()){case R.id.action_setting:Toast.makeText(AppCompatWigetActivity.this, "點(diǎn)擊---"+item.getTitle(), Toast.LENGTH_SHORT).show();break;case R.id.action_share:Toast.makeText(AppCompatWigetActivity.this, "點(diǎn)擊---"+item.getTitle(), Toast.LENGTH_SHORT).show();break;case R.id.action_add:Toast.makeText(AppCompatWigetActivity.this, "點(diǎn)擊---"+item.getTitle(), Toast.LENGTH_SHORT).show();break;}return false;}});popupMenu.show();}

?

?效果如圖所示:

?

?

?7.RecyclerView

private void initRecyclerView() {mList = Arrays.asList(mStrings);mRy.setLayoutManager(new GridLayoutManager(this,3));mAdapter = new MainRecyclerAdapter(mList);mRy.setAdapter(mAdapter);mAdapter.setItemClickListener(new MainRecyclerAdapter.ItemClickListener() {@Overridepublic void click(View view, int position, String text) {Toast.makeText(MainActivity.this, "點(diǎn)擊--"+text, Toast.LENGTH_SHORT).show();goActivity(position);}});}

?

?

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/jeffery336699/p/9296002.html

總結(jié)

以上是生活随笔為你收集整理的Metail Design各个控件(二)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。