欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java UI框架(Position和AdaptiveBox Layout)設(shè)計(jì)

jf_Vqngj70R ? 來源:美男子玩編程 ? 2023-07-31 14:10 ? 次閱讀

1

Position Layout

在PositionLayout中,子組件通過指定準(zhǔn)確的x/y坐標(biāo)值在屏幕上顯示。(0, 0)為左上角,當(dāng)向下或向右移動(dòng)時(shí),坐標(biāo)值變大;允許組件之間互相重疊。

PositionLayout示意圖:

9a16a146-2f57-11ee-815d-dac502259ad0.png

PositionLayout以坐標(biāo)的形式控制組件的顯示位置,允許組件相互重疊。

在layout目錄下的XML文件中創(chuàng)建PositionLayout并添加多個(gè)組件,并通過position_x和position_y屬性設(shè)置子組件的坐標(biāo)。

使用PositionLayout的布局效果:

9a22f6c6-2f57-11ee-815d-dac502259ad0.png

示例代碼:

xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:id="$+id:position"
    ohos:height="match_parent"
    ohos:width="300vp"
    ohos:background_element="#3387CEFA">


    ohos:id="$+id:position_text_1"
        ohos:height="50vp"
        ohos:width="200vp"
        ohos:background_element="#9987CEFA"
        ohos:position_x="50vp"
        ohos:position_y="8vp"
        ohos:text="Title"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>


    


    

設(shè)置子組件的坐標(biāo)時(shí)(position_x和position_y屬性),除了上述示例中的XML方式,還可以在對(duì)應(yīng)的AbilitySlice中通過setPosition(int x, int y)接口設(shè)置,Java示例代碼如下:

Text title = (Text)findComponentById(ResourceTable.Id_position_text_1);
        Text content1 = (Text)findComponentById(ResourceTable.Id_position_text_2);
        Text content2 = (Text)findComponentById(ResourceTable.Id_position_text_3);


        title.setPosition(vp2px(50), vp2px(8));
        content1.setPosition(vp2px(8), vp2px(64));
        content2.setPosition(vp2px(92), vp2px(188));

單位轉(zhuǎn)換的方法如下:

private int vp2px(float vp){
        return AttrHelper.vp2px(vp,this);
    }
對(duì)于超過布局本身大小的組件,超出部分將不顯示。

Right組件右側(cè)超出部分將不顯示:

9a3884b4-2f57-11ee-815d-dac502259ad0.png

示例代碼:




    ...


    ohos:id="$+id:position_text_4"
        ohos:height="120vp"
        ohos:width="120vp"
        ohos:background_element="#9987CEFA"
        ohos:position_x="212vp"
        ohos:position_y="64vp"
        ohos:text="Right"
        ohos:text_alignment="center"
        ohos:text_size="20fp"/>

2

AdaptiveBox Layout

AdaptiveBox Layout是自適應(yīng)盒子布局,該布局提供了在不同屏幕尺寸設(shè)備上的自適應(yīng)布局能力,主要用于相同級(jí)別的多個(gè)組件需要在不同屏幕尺寸設(shè)備上自動(dòng)調(diào)整列數(shù)的場(chǎng)景。

該布局中的每個(gè)子組件都用一個(gè)單獨(dú)的“盒子”裝起來,子組件設(shè)置的布局參數(shù)都是以盒子作為父布局生效,不以整個(gè)自適應(yīng)布局為生效范圍。

該布局中每個(gè)盒子的寬度固定為布局總寬度除以自適應(yīng)得到的列數(shù),高度為match_content,每一行中的所有盒子按高度最高的進(jìn)行對(duì)齊。

該布局水平方向是自動(dòng)分塊,因此水平方向不支持match_content,布局水平寬度僅支持match_parent或固定寬度。

自適應(yīng)僅在水平方向進(jìn)行了自動(dòng)分塊,縱向沒有做限制,因此如果某個(gè)子組件的高設(shè)置為match_parent類型,可能導(dǎo)致后續(xù)行無法顯示。

AdaptiveBox Layout示意圖:

9a5941e0-2f57-11ee-815d-dac502259ad0.jpg

AdaptiveBox Layout布局常用方法如下:

方法 功能
addAdaptiveRule(int minWidth, int maxWidth, int columns) 添加一個(gè)自適應(yīng)盒子布局規(guī)則。
removeAdaptiveRule(int minWidth, int maxWidth, int columns) 移除一個(gè)自適應(yīng)盒子布局規(guī)則。
clearAdaptiveRules() 移除所有自適應(yīng)盒子布局規(guī)則。

在AdaptiveBox Layout中添加和刪除自適應(yīng)盒子布局規(guī)則的效果對(duì)比如下。

9a685fa4-2f57-11ee-815d-dac502259ad0.gif

XML布局示例代碼:

xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:orientation="vertical">


    xmlns:ohos="http://schemas.huawei.com/res/ohos"
        ohos:height="0vp"
        ohos:width="match_parent"
        ohos:weight="1"
        ohos:id="$+id:adaptive_box_layout">


        

Java關(guān)鍵代碼:

AdaptiveBoxLayout adaptiveBoxLayout = (AdaptiveBoxLayout)findComponentById(ResourceTable.Id_adaptive_box_layout);


findComponentById(ResourceTable.Id_add_rule_btn).setClickedListener((component-> {
    // 添加規(guī)則
    adaptiveBoxLayout.addAdaptiveRule(100, 2000, 3);
    // 更新布局
    adaptiveBoxLayout.postLayout();
}));


findComponentById(ResourceTable.Id_remove_rule_btn).setClickedListener((component-> {
    // 移除規(guī)則
    adaptiveBoxLayout.removeAdaptiveRule(100, 2000, 3);
    // 更新布局
    adaptiveBoxLayout.postLayout();
}));





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA語(yǔ)言
    +關(guān)注

    關(guān)注

    0

    文章

    138

    瀏覽量

    20205
  • XML技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    6038
  • LAYOUT技術(shù)
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    5978
  • Layout設(shè)計(jì)
    +關(guān)注

    關(guān)注

    1

    文章

    13

    瀏覽量

    1630
  • XML加密
    +關(guān)注

    關(guān)注

    0

    文章

    3

    瀏覽量

    999

原文標(biāo)題:HarmonyOS學(xué)習(xí)路之開發(fā)篇—Java UI框架(Position和AdaptiveBox Layout)

文章出處:【微信號(hào):美男子玩編程,微信公眾號(hào):美男子玩編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【HarmonyOS HiSpark AI Camera試用連載 】鴻蒙JS UI介紹

    開發(fā)的FA應(yīng)用,這里的FA應(yīng)用特指JS FA應(yīng)用。使用Java開發(fā)FA應(yīng)用請(qǐng)參考Java UI框架。Framework前端框架層主要完成前端
    發(fā)表于 01-11 20:10

    請(qǐng)教鴻蒙應(yīng)用開發(fā)JAVA UI 框架ProgressBar或者RoundProgressBar怎么實(shí)現(xiàn)滑動(dòng)調(diào)節(jié)

    如題https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java
    發(fā)表于 01-12 15:23

    輕量級(jí)的ui框架如何去制作

    原創(chuàng)分享:自制輕量級(jí)單片機(jī)UI框架框架元素用戶接口代碼開源平時(shí)??碿sdn,但是從來沒有自己寫過。正好這幾天需要用單片機(jī)做一個(gè)簡(jiǎn)易的ui界面,于是自己寫了一個(gè)輕量級(jí)的
    發(fā)表于 07-14 07:39

    基于HarmonyOS Java UI使用元數(shù)據(jù)綁定框架實(shí)現(xiàn)UI和數(shù)據(jù)源的綁定

    1. 介紹元數(shù)據(jù)綁定框架是基于HarmonyOS SDK開發(fā)的一套提供UI和數(shù)據(jù)源綁定能力的框架。通過使用元數(shù)據(jù)綁定框架,HarmonyOS應(yīng)用開發(fā)者無需開發(fā)繁瑣重復(fù)的代碼即可實(shí)現(xiàn)綁定
    發(fā)表于 08-18 10:23

    基于HarmonyOS Java UI,使用元數(shù)據(jù)綁定框架,實(shí)現(xiàn)UI和數(shù)據(jù)源的綁定

    1. 介紹元數(shù)據(jù)綁定框架是基于HarmonyOS SDK開發(fā)的一套提供UI和數(shù)據(jù)源綁定能力的框架。通過使用元數(shù)據(jù)綁定框架,HarmonyOS應(yīng)用開發(fā)者無需開發(fā)繁瑣重復(fù)的代碼即可實(shí)現(xiàn)綁定
    發(fā)表于 09-01 14:54

    基于HarmonyOS Java UI,實(shí)現(xiàn)常見組件或者布局

    /resources/base/layout目錄下新建布局文件tab_list.xml,此布局文件中主要使用Tablist組件,并設(shè)置其樣式。 編寫AbilitySlice文件在src/main/java
    發(fā)表于 10-09 14:13

    鴻蒙應(yīng)用開發(fā)的JS UI框架如何實(shí)現(xiàn)高德地圖的訪問?

    鴻蒙應(yīng)用,現(xiàn)在分為Java UI框架和Ark UI框架,其中JS UI開發(fā)者
    發(fā)表于 04-28 11:44

    求助!請(qǐng)問如何在JS UI項(xiàng)目里增加java UI頁(yè)面?

    項(xiàng)目用的js UI,視頻解碼無法在js視頻播放;想增加一個(gè)java UI的視頻播放器?或者視頻編解碼的其他解決方案?
    發(fā)表于 05-10 10:48

    DevEco Studio里的java UI框架有沒有必要做拖拽式編程呢?

      DevEco Studio已經(jīng)支持js UI框架拖拽式編程,你覺得java UI框架有沒有必要做拖拽式編程呢?
    發(fā)表于 05-18 15:32

    CSS框架:Semantic UI的優(yōu)缺點(diǎn)

    作為一名全棧開發(fā)人員,Jack Lukic使用自然語(yǔ)言原理創(chuàng)建了Semantic UI框架。憑借著jQuery和LESS功能,Semantic UI提供了光滑、平整且精細(xì)的外觀,以及輕量級(jí)的用戶
    的頭像 發(fā)表于 07-01 16:06 ?1.4w次閱讀

    在HarmonyOS版本下如何基于JS UI框架來開發(fā)?

    作者:zhenyu ,華為軟件開發(fā)工程師 在當(dāng)前HarmonyOS版本下,如何基于JS UI框架來開發(fā)呢? 1JS UI框架下FA與PA交互的使用場(chǎng)景通常一個(gè)典型使用JS
    的頭像 發(fā)表于 07-13 09:24 ?2230次閱讀

    深入解析UI框架簡(jiǎn)介以及業(yè)界發(fā)展趨勢(shì)

    作者:yuzhiqiang、sunfei、wanglei,華為軟件架構(gòu)工程師UI 框架簡(jiǎn)介以及業(yè)界發(fā)展趨勢(shì) UI,即用戶界面,主要包含視覺(比如圖像、文字、動(dòng)畫等可視化內(nèi)容)以及交互(比如按鈕點(diǎn)擊
    的頭像 發(fā)表于 08-04 14:25 ?5764次閱讀
    深入解析<b class='flag-5'>UI</b><b class='flag-5'>框架</b>簡(jiǎn)介以及業(yè)界發(fā)展趨勢(shì)

    全面解讀HarmonyOS新一代UI框架

    作者:yuzhiqiang,UI編程框架首席技術(shù)專家 在Harmony 3.0.0開發(fā)者預(yù)覽版中,包含了新一代的聲明式UI框架ArkUI 3.0、多語(yǔ)言跨平臺(tái)編譯器ArkCompile
    的頭像 發(fā)表于 10-29 10:21 ?2796次閱讀
    全面解讀HarmonyOS新一代<b class='flag-5'>UI</b><b class='flag-5'>框架</b>

    基于Java的接口快速開發(fā)框架——magic-api

    magic-api 是一個(gè)基于Java的接口快速開發(fā)框架,編寫接口將通過magic-api提供的UI界面完成,自動(dòng)映射為HTTP接口,無需定義Controller、Service、Dao、Mapper、XML、VO等
    發(fā)表于 07-19 11:42 ?976次閱讀
    基于<b class='flag-5'>Java</b>的接口快速開發(fā)<b class='flag-5'>框架</b>——magic-api

    基于springboot和vue框架Java

    本文將詳細(xì)介紹基于Spring Boot和Vue框架進(jìn)行Java應(yīng)用開發(fā)的實(shí)踐。首先,將介紹Spring Boot和Vue框架的基本概念及其優(yōu)點(diǎn)。然后,將詳細(xì)介紹如何搭建Spring Boot
    的頭像 發(fā)表于 12-03 15:15 ?1134次閱讀