Delphi XE5 for Android (六)


今天嘗試了TTabControl的使用。在很多Android的app中,首次啟動時都使用選項卡模式進行產品介紹,用戶通過向左滑動,改變選項卡。在xe5下這項工作由TTabControl控件完成,如下圖:

image

 

1、TTabControl外觀

TTabControl的外觀由屬性TabPosition控制,可選項包括:

tpTop         選項tab在控件上方

tpBottom   選項tab在控件下方

tpNone      以原點形式顯示選項tab,在控件下方,如下圖:

image

tpDots        以方格形式顯示選項tab,在控件下方,如下圖:

image

 

2、控制換頁

對換頁的處理有以下幾種形式:

(1)按鈕+Action控制

通過創建標准Action——TChangeTabAction,指定Tab屬性表示該動作的目標選項卡,如下圖:

image

然后對按鈕指定對應的Action

(2)手勢(Gesture)控制

手勢控制就是在Pad或手機上常用的左右滑動,放大縮小等操作,這里需要先在Form上放置一個TGestureManager控件,然后在TTabControl的OnGesture事件對手勢進行判斷和處理,代碼如下:

procedure TTabbedwithNavigationForm.TabControl1Gesture(Sender: TObject;
  const EventInfo: TGestureEventInfo; var Handled: Boolean);
begin

  //識別事件的手勢
  case EventInfo.GestureID of
    sgiLeft://由右向左滑動手指
    begin

       //如果不是最后一個tab,則選擇下一個tab
      if TabControl1.ActiveTab <> TabControl1.Tabs[TabControl1.TabCount-1] then
        TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex+1];
      Handled := True; //已代碼處理
    end;

    sgiRight://由左向右滑動手指
    begin

      //如果不是第一個tab,則選取前一個tab
      if TabControl1.ActiveTab <> TabControl1.Tabs[0] then
        TabControl1.ActiveTab := TabControl1.Tabs[TabControl1.TabIndex-1];
      Handled := True;//已代碼處理
    end;
  end;
end;

 

(3)通過硬件按鈕(Hardware KeyBoard)控制

在窗體的OnKeyDown或OnKeyUp事件,對硬件按鈕進行識別,然后處理。代碼如下:

procedure TTabbedwithNavigationForm.FormKeyUp(Sender: TObject; var Key: Word;
  var KeyChar: Char; Shift: TShiftState);
begin

  //如果是硬件的返回按鈕
  if Key = vkHardwareBack then
  begin

    //在特定的頁面上,返回上一個頁面
    if (TabControl1.ActiveTab = TabItem1) and (TabControl2.ActiveTab = TabItem6) then
    begin

      //指定頁面
      TabControl2.ActiveTab = TabItem5;

      //已處理鍵盤的鍵值
      Key := 0;
    end;
  end;
end;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM