1. 程式人生 > >Ext JS 6開發例項(四) :調整主檢視

Ext JS 6開發例項(四) :調整主檢視

上文把主介面設定好,但是主檢視因為介面的微調出現了顯示問題,本文將把它調整好了。

開啟app/view/main/Main.js,可以看到主檢視是派生於標籤面板(Ext.tab.Panel)的。在檢視的標籤欄內,除了顯示標籤外,還顯示了標題欄。由於已經重新設計了標題欄,主檢視的標籤欄就不需要了,因而先把這個去掉。

檢查一下程式碼,會發現程式碼中有個header配置項,根據API可以知道,該配置項是用來定義面板的標題的,因而把這段程式碼先去掉。在瀏覽器中重新整理一下,會看到如下圖的效果:

這裡寫圖片描述

從圖中可以看到,標題是去掉了,但還是有問題,再檢查下程式碼,會發現以下三個配置項是與標題和標籤的設定有關的:

    tabBarHeaderPosition: 1,
    titleRotation: 0,
    tabRotation: 0,

根據API,可以知道tabBarHeaderPosition是用來指定標題欄的位置的,因而可以去掉;titleRotation是用來控制標題文字的顯示方向的,這個也可以去掉;tabRotation是用來控制標籤文字的顯示方向的,暫時保留。

重新整理一下瀏覽器,可看到下圖的效果:
這裡寫圖片描述

從圖中可以看到,標題欄已經去掉了,但是標籤還是在頂部。查一下API,可以找到tabPosition配置項,通過它可以控制標籤的位置,因而在程式碼中新增以下程式碼,讓標籤顯示在左邊:

tabPosition: 'left',

重新整理一下瀏覽器,可看到如下圖所示的效果:
這裡寫圖片描述

從圖中可以看到,目標已經實現了。

雖然基本目標已經達成,但是否還存在些小疑惑?為什麼這個標籤面板的標籤顯示與主題所預設所顯示的標籤(下圖)會不同?

這裡寫圖片描述

這是因為,在主檢視中使用了自定義的UI,程式碼如下:

ui: 'navigation',

根據API,ui配置項的作用是用來指定元件的UI樣式,預設值是default,也就是使用預設的樣式。而在這裡,將值指定為了navigation,也就是說,當前的標籤頁將使用navigation樣式,那麼這個樣式是在哪裡定義的呢?

大家開啟sass\src\view\main\Main.scss檔案,就會看到navigation的樣式定義了。開啟檔案後,會看到如下的一些程式碼:

@include extjs-tab-panel-ui(
    $ui: 'navigation',
    $ui-tab-background-color: transparent,
    $ui-tab-background-color-over: #505050,
    $ui-tab-background-color-active: #303030,
    $ui-tab-background-gradient: 'none',
    $ui-tab-background-gradient-over: 'none',
    $ui-tab-background-gradient-active: 'none',
    $ui-tab-color: #acacac,
    $ui-tab-color-over: #c4c4c4,
    $ui-tab-color-active: #fff,
    $ui-tab-glyph-color: #acacac,
    $ui-tab-glyph-color-over: #c4c4c4,
    $ui-tab-glyph-color-active: #fff,
    $ui-tab-glyph-opacity: 1,
    $ui-tab-border-radius: 0,
    $ui-tab-border-width: 0,
    $ui-tab-inner-border-width: 0,
    $ui-tab-padding: 24px,
    $ui-tab-margin: 0,
    $ui-tab-font-size: 15px,
    $ui-tab-font-size-over: 15px,
    $ui-tab-font-size-active: 15px,
    $ui-tab-line-height: 19px,
    $ui-tab-font-weight: bold,
    $ui-tab-font-weight-over: bold,
    $ui-tab-font-weight-active: bold,
    $ui-tab-icon-width: 24px,
    $ui-tab-icon-height: 24px,
    $ui-tab-icon-spacing: 5px,
    $ui-bar-background-color: #404040,
    $ui-bar-background-gradient: 'none',
    $ui-bar-padding: 0,
    $ui-strip-height: 0
);

當看到以上的東西,一定會問,這是什麼鬼?完全看不懂啊!先別慌,先開啟Ext JS 6的API,找到Ext.tab.Panel的說明,然後在工具欄中找到CSS Mixins選單,選擇extjs-tab-panel-ui,就會看到下圖說明了:
這裡寫圖片描述

從圖中的說明可以瞭解到,“$ui”定義的是UI的名字,“$ui-tab-background-color”就是標籤的背景顏色……

根據模板給的示範,是否會覺得:其實修改Ext JS 6的樣式也不算太難呢?
我的意見是不太難,難的在於入門,呵呵。

在主檢視的定義中,還有2個比較特別的配置項:responsiveConfig和defaults和。他們又有什麼作用呢?

在API中直接搜尋responsiveConfig並切換到Ext.mixin.Responsive類,就可以知道,該配置項的作用是在指定條件下將應用怎樣的顯示,主檢視中的定義說明,在豎向顯示的時候,標題欄將顯示在頂部,而在橫向顯示的時候,則顯示在左邊。

配置項defaults的作用是用來指定子元件的預設配置的,也就是說,在標籤面板建立子元件的時候,會把defaults中的配置項應用到子元件中。根據defaults中的配置項,可以瞭解到,標籤頁的內容區域將會向內收縮20個畫素(bodyPadding),而每個標籤頁的標籤(tabConfig)將應用外掛Ext.plugin.Responsive,這樣,就可以實現在顯示是橫向的時候,標籤將顯示在左邊,顯示是豎向的時候,標籤顯示在頂部,而且寬度固定為120畫素。

由於當前專案只基於PC端,因而這兩個配置項對當前專案來說意義不大,可以刪除。

接下來修改一下標籤頁,在當前專案需要用到三個標籤頁:使用者管理、文章管理和圖片管理。具體修改程式碼如下:

    items: [
        {
            title: '使用者管理',
            iconCls: 'fa-user'
        },
        {
            title: '文章管理',
            iconCls: 'fa-file-text-o',
        },
        {
            title: '圖片管理',
            iconCls: 'fa-photo',
        }
    ]

這時候如果重新整理瀏覽器,可能會出現亂碼的情況,這是因為頁面的內碼表不是Unicode的,因為需要修改一下檔案的內碼表。在Visual Studio中,可在檔案選單中選擇“高階儲存選項”,然後如下圖那樣,將編碼設定為Unicode,再儲存就行了。
這裡寫圖片描述

現在重新整理瀏覽器,可看到如下圖的效果:

這裡寫圖片描述

今天就說到這了,有什麼問題或疑問,請加入qq交流群391747779 進行諮詢。

相關推薦

Ext JS 6開發例項 調整主檢視

上文把主介面設定好,但是主檢視因為介面的微調出現了顯示問題,本文將把它調整好了。 開啟app/view/main/Main.js,可以看到主檢視是派生於標籤面板(Ext.tab.Panel)的。在檢視的標籤欄內,除了顯示標籤外,還顯示了標題欄。由於已經重新設計

Angular開發實踐組件之間的交互

lec previous call 私有 判斷 處理方法 數組 依然 處理 在Angular應用開發中,組件可以說是隨處可見的。本篇文章將介紹幾種常見的組件通訊場景,也就是讓兩個或多個組件之間交互的方法。 根據數據的傳遞方向,分為父組件向子組件傳遞、子組件向父組件傳遞及通過

NeuChar 平臺使用及開發教程使用 NeuChar 的素材服務

  各類公眾號的功能之一就是為使用者提供各類圖文和多媒體的資訊,因此素材是必不可少的。   進入 Neural Cell 設定介面,點選右側【素材管理】按鈕,進入素材管理介面。       目前系統提供了文字、多圖文、圖片三種類型的素材,後續將會有更多型別提供。   點選按鈕

JRtplib開發筆記JRtplib的VS開發環境搭建以及Demo

原博主部落格地址:https://blog.csdn.net/qq21497936 本文章部落格地址:https://blog.csdn.net/qq21497936/article/details/84957708 《JRtplib開發筆記(一):JRtplib簡介、JThread庫編譯》

UML例項線上購物系統順序圖

順序圖文件 1、圖形文件 註冊: 登入: 搜尋商品: 訂單維護: 商品管理: 退貨處理: 購物車管理:

【一步步一起學DApp開發web3.js 基本使用 | 連線geth | 建立web客戶端

概述 web3.js內部使用JSONRPC與geth通訊。它把所有JSON-RPC API當作JavaScript API,也就是說,它不僅支援所有與以太坊相關的API,還支援與Whisper和Swarm相關的API。 相關連結 web3.js託管地址

Three.js 開發機房

這一節我們講講怎麼畫機櫃,其實機櫃如果作的複雜一點、逼真一點可以用3D建模工具,不過一般的專案中也不用做的那麼麻煩,那我們就可以將機櫃抽象以下,首先它是一塊具有長寬高的立方體鐵塊,然後我們從中間在掏掉一個小一號的立方體同時掏出出一個門的位置就好了,程式碼如下 initCabient() {

API開發實踐 返回HTML

acea 指定 win filename static box 拖動地圖 ive let 分為兩個部分:生成HTML和返回HTML 生成HTML: 最終想要的時顯示地圖,不可避免的使用高德地圖的API。 【地圖API】地址錄入時如何獲得準確的經緯度?淘寶收貨地址詳解 改變幾

學習 MeteoInfo二次開發教程

手動添加 map dem itl 數控 nas 字號 south title 教程四的問題不大。 1.private void AddMapFrame_ChinaSouthSea()、private void AddTitle()兩個函數和public Form1()函數並

Qt移動應用開發應用粒子特效

ons -i 遊戲 direct mit class png pop 狀態 Qt移動應用開發(四):應用粒子特效 上一篇文章介紹了Qt Quick是如何對幀動畫進行支持的。幀動畫的實現離不開狀態機、而狀態機、動畫和狀態切換(transition

【Win 10 應用開發】UI Composition 劄記繪制圖形

圖形 package 記得 aml 3.5 平時 surf 繪圖 str 使用 Win 2D 組件,就可以很輕松地繪制各種圖形,哪怕你沒有 D2D 相關基礎,也不必寫很復雜的 C++ 代碼。 先來說說如何獲取 Win 2D 組件。很簡單,創建 UWP 應用項目後,你打開&

Java開發小技巧配置文件敏感信息處理

加載 gem 加密解密 -i false valid ges enc factory 前言 不知道在上一篇文章中你有沒有發現,jdbc.properties中的數據庫密碼配置是這樣寫的: jdbc.password=5EF28C5A9A0CE86C2D231A526ED5

星雲鏈智能合約開發在星雲鏈上發送交易

星雲鏈智能合約開發 在星雲鏈上發送交易 準備賬戶 在星雲鏈上,每個地址表示一個唯一的賬戶,一一對應。 在發送交易前,我們需要準備兩個賬戶:一個賬戶用來發送代幣 (稱為"from") 和另一個賬戶來接受代幣 (稱為"to"). 發送者賬戶 在這裏,我們將會使用配置

Qt與FFmpeg聯合開發指南——編碼2完善功能和基礎封裝

v_op buffer 目前 front from 幀率 inter 博客 int 上一章我用一個demo函數演示了基於Qt的音視頻采集到編碼的完整流程,最後經過測試我們也發現了代碼中存在的問題。本章我們就先處理幾個遺留問題,再對代碼進行完善,最後把編碼功能做基礎封裝。 一

LayIM.AspNetCore Middleware 開發日記主角登場LayIM介紹

融雲 文檔 應該 步驟 end 想要 .sql 味道 asp.net 前言   在前幾篇中已經初步介紹了開發AspNetCore中間件的一些基礎知識,不過都沒有很深入的去研究,後續還是需要去看看源碼。本篇呢,終於有點開頭的味道了,就是要介紹LayIM了,其實標題寫的是主角,

Java開發筆記Java帝國的度量衡

時間 我們 true 都是 不難 class 右鍵菜單 imp 既然 秦始皇統一中國之後,實行“書同文,車同軌”,把貨幣和各種度量衡都統一起來,從而締造了一個秩序井然的帝國。既然統一度量衡是每個帝國都要做的事情,Java帝國也不例外,對於人生地不熟的初學者來說,只有認識了J

【Android開發—智慧家居系列】UDP通訊傳送指令

【Android開發—智慧家居系列】(四):UDP通訊傳送指令   思路回顧 【1】手機連線WIFI模組  【2】UDP通訊對WIFI模組傳送指令,以和WIFI模組保持連線狀態  【3】UDP通訊對WIFI模組傳送指令,讓其搜尋可用的無線網,返回WIFI列表

使用SpringBoot2.0搭建企業級應用開發框架配置LogBack日誌

前言 SpringBoot預設配置提供了對常用日誌的支援,如:Java Util Logging、Log4J、Log4J2和Logback,每種Logger都可以通過配置使用控制檯或者檔案輸出日誌內容 Logback是log4j框架的作者開發的新一代日誌框架,它效率更高、能夠適

3dContactPointAnnotationTool開發日誌

手動 unity title 裏的 界面 con 分享 obj 還得 ??沒辦法,為了能在寢室接著做這玩意只好又在電腦上裝一個和實驗室版本一樣的unity了。雖然打開後UI界面還是一團糟,不過至少要的東西都在,又手動調了調UI界面。 ??然後把旋轉視角功能加上了。鼠標右鍵

即時通訊音視訊開發視訊編解碼之預測技術介紹

前言 即時通訊應用中的實時音視訊技術,幾乎是IM開發中的最後一道高牆。原因在於:實時音視訊技術 = 音視訊處理技術 + 網路傳輸技術 的橫向技術應用集合體,而公共網際網路不是為了實時通訊設計的。 系列文章 《即時通訊音視訊開發(二):視訊編解碼之數字視訊介紹》 《即時通訊音