老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)

Android開發(fā)的UI設(shè)計(jì)——MaterialDesign-創(chuàng)新互聯(lián)

前言

Material Design 是用于指導(dǎo)用戶在各種平臺和設(shè)備上進(jìn)行視覺、動作和互動設(shè)計(jì)的全面指南。如需在您的 Android 應(yīng)用中使用 Material Design,請遵循?Material Design 規(guī)范中定義的準(zhǔn)則,并使用?Material Design 支持庫中提供的新組件和樣式。

創(chuàng)新互聯(lián)公司主要從事成都做網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)烏蘭,十年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220正篇 安卓中的Material Design

作為Google旗下的一員——安卓,則是將其一些最具代表性一些控件和效果封裝在Material庫,這就讓我們開發(fā)者可以在不了解Material Design的情況下,也很容易將自己的應(yīng)用Material化,當(dāng)然現(xiàn)在在AndroidX庫中的一些組件也可以實(shí)現(xiàn)一些Material Design的效果。

BottomSheetDialogFragment組件 介紹

這個(gè)組件在Material Design中分屬Bottom Sheets:

BottomSheetDialogFragment 繼承自 AppCompatDialogFragment,官方解釋為模態(tài)底部表,是 DialogFragment 的一個(gè)版本,它使用的是 BottomSheetDialog,而不是浮動對話框。

優(yōu)勢

1、擁有自己的生命周期;
2、可對整個(gè)頁面進(jìn)行折疊、展開和銷毀;
3、可靈活使用自定義樣式。

使用方法?
implementation 'com.google.android.material:material:1.7.0'

添加好后Sync Gradle成功后,我們就可以在項(xiàng)目中添加BottomSheetDialogFragment了,很簡單,和正常寫繼承DialogFragment的Dialog一樣,因?yàn)樵谏鲜鲋形覀兛吹搅似淅^承關(guān)系,BottomSheetDialogFragment是繼承自AppCompatDialogFragment,而
AppCompatDialogFragment又是繼承自DialogFragment。如此一來,由于BottomSheetDialogFragment是DialogFragment的子類,故它具有DialogFragment的所有特性。

實(shí)現(xiàn)需求

Dialog部分的實(shí)現(xiàn)代碼

class DialogMore : BottomSheetDialogFragment() {
    private var height : Int = 0

    fun newInstance(): DialogMore {
        return DialogMore()
    }

    fun setDialogHeight(height: Int): DialogMore {
        this.height = height
        return this
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setStyle(STYLE_NORMAL, R.style.StyleBottomSheetDialogBg)
    }

    override fun onStart() {
        super.onStart()
        //拿到系統(tǒng)的 bottom_sheet
        val bottomSheetDialog = (dialog as BottomSheetDialog?)!!
        val view =
            bottomSheetDialog.delegate.findViewById(com.google.android.material.R.id.design_bottom_sheet)!!
        val behavior = BottomSheetBehavior.from(view)
        //設(shè)置彈出高度
        behavior.peekHeight = height
        view.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
        behavior.isHideable = false
    }

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val dialog = super.onCreateDialog(savedInstanceState)
        val view = LayoutInflater.from(context).inflate(R.layout.layout_item_dialog_more, null)
        dialog.setContentView(view)
        view.vDownClose.setOnClickListener {
            dismiss()
        }
        return dialog
    }

}

可以看到,這部分實(shí)現(xiàn)代碼和我們平時(shí)寫底部彈窗方法差不多,不過我們在onStar()方法可以使用BottomSheetBehavior去控制彈窗本身的行為,比如高度控制和一些彈窗的屬性設(shè)置

在onCreateDialog方法中我們把彈窗布局加進(jìn)去,使用setContentView()方法獲取到布局,一定要寫該方法,不然我們在獲取BottomSheetBehavior的時(shí)候* val behavior = BottomSheetBehavior.from(view)*這句會報(bào)空

而我們的彈窗需要頂部圓角,且去除背景陰影,所以增加了樣式:

該地方樣式在Dialog實(shí)現(xiàn)代碼處調(diào)用,在onCreate方法中使用setStyle()方法。

此外,我們還需要在自己的布局中添加圓角:

樣式可以添加在我們定義的彈窗布局最外層布局

Dialog樣例布局如下



        

        
   

                
                
 
 

如果怕彈窗內(nèi)部與外面的觸控效果產(chǎn)生沖突,最簡單的就是使用NestedScrollView控件,而不是普通的ScrollView布局

Activity的布局

      
        
        
       

還有在Activity實(shí)現(xiàn)調(diào)用的代碼

class MainActivity : AppCompatActivity() {

    private var dialogHeight : Int = 0

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }

    override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        // 獲取dialog的高度

        dialogHeight = vllSize.measuredHeight
        // 獲取dialog的高度
        Log.d( "MainActivity" ,"height = $dialogHeight")
    }

    override fun onResume() {
        super.onResume()

        vMore.setOnClickListener {
            val dialog  = DialogMore().newInstance()
                .setDialogHeight(dialogHeight)
            val ft: FragmentTransaction =
                supportFragmentManager.beginTransaction()
            ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE)
            dialog.show(ft, "DialogMore")
        }
    }
}

通過測量vllSize控件(剩余底部)的高度,我們可以將彈窗第一次彈窗的高度設(shè)置到這,當(dāng)然高度可以由你任意設(shè)置,

在Dialog實(shí)現(xiàn)代碼中:

override fun onStart() {
    super.onStart()
    //拿到系統(tǒng)的 bottom_sheet
    val bottomSheetDialog = (dialog as BottomSheetDialog?)!!
    val view =
        bottomSheetDialog.delegate.findViewById(com.google.android.material.R.id.design_bottom_sheet)!!
    val behavior = BottomSheetBehavior.from(view)
    //設(shè)置彈出高度
    behavior.peekHeight = height
    view.layoutParams.height = ViewGroup.LayoutParams.MATCH_PARENT
    behavior.isHideable = false
}

view.layoutParams.height我們設(shè)置了第二次可把彈窗拉動到整個(gè)屏幕上

本文中實(shí)現(xiàn)的彈窗禁止了相信滑動關(guān)閉彈窗,所以不會滑到底部,代碼是Dialog實(shí)現(xiàn)中的屬性控制,不寫默認(rèn)為true向下滑動關(guān)閉彈窗,false表示禁止該方式關(guān)閉彈窗:

behavior.isHideable = false

最終效果:

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)頁題目:Android開發(fā)的UI設(shè)計(jì)——MaterialDesign-創(chuàng)新互聯(lián)
網(wǎng)頁路徑:http://www.xueling.net.cn/article/jhsgp.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 欧亚精品卡一卡二卡三 | 人人爱天天爱天天摸天天做天天爽 | 九色pron| 2018av天堂在线视频精品观看 | 国产一级毛片精品完整视频版 | 久久精品国产清自在天天线 | 国产揄拍国产精品人妻蜜 | 久久激情欧美 | 亚洲网站在线播放 | 狠狠噜天天噜日日噜视频跳一跳 | YW尤物AV无码国产在线观看 | 护士精品一区二区三区99 | 法国性迷宫 | 中文字幕在线中文字幕在线中三区 | 亚洲精品成人无码中文毛片不卡 | 国产精品久久久久久久久免费高清 | 色啪视频| 中文在线第一页 | 国产一区二区三区视频 | 欧美日韩亚洲国产精品 | 91一区二区三区久久久久国产乱 | 丁香色情五月综合网站 | 国产7座suv精品麻豆啪最新 | 东方欧美亚洲色图 | 欧美一区2区视频在线观看 久久国产亚洲精品 | 欧美日韩亚洲国产精品 | 国产乱子伦在线观看 | 多人调教到高潮失禁h重口文 | 亚洲AV成人一区二区三区网站 | 中文字幕久久精品一区二区 | 色肉色伦交国产69精品 | 亚洲日韩欧美综合不卡在线 | 欧美一级理论 | 四虎影视一区二区 | 国产第1页| 成人网站在线进入爽爽爽 | 日韩影院在线 | 欧美日视频| 国产99re热视频这里只有免费精品 | 精品水蜜桃久久久久久久 | 国产爆乳无码av在线播放 |