簡體   English   中英

Android-ActionBar滑動標簽

[英]Android - ActionBar swipe tabs

我有一個需要3個標簽頁,滑動標簽頁的應用程序。

前兩個是片段,第三個是我需要打開相機。

這些片段的標題為“ Stream”,“ Profile”,“ Photo”。啟動應用程序時,用戶應看到Stream片段,並且在滑動視圖時應會更改。

為了在用戶滑動或按下“照片”選項卡時啟動相機,照片類是Activity類的擴展,在onCreate中,我設置了啟動相機的意圖。

問題是,當我從“流”滑動到“配置文件”時,我看到它打開了相機。 當我調試它時,我看到它發生的意思是,當我從Stream滑動到Profile時,偵聽器將返回camera選項卡的索引。

即使我更改照片類別以擴展片段,也會發生這種情況。

那么,當用戶按下或滑動至“照片”標簽時,如何啟動相機?

更新:

好吧,現在有點奇怪了。我創建了一個新項目,看我的代碼是否有問題。我只是使用了本教程中的代碼

更新資料

正如本教程的作者所做的那樣,我創建了main活動,該活動設置了所有選項卡和適配器,並實現了TabListener。 現在,每個選項卡都是一個從Fragment擴展並具有自己的布局的類。 主要活動監聽是否有滑動以及向哪個方向滑動,或者是否向右按下Tab鍵? 我的標簽按此順序排列| STREAM | PROFILE | PHOTO | | STREAM | PROFILE | PHOTO | 啟動應用程序時,我會看到“信息流”選項卡,當我移至“個人資料”選項卡時(按住該選項卡或只是滑動即可),它顯示了正確的布局並標記了正確的選項卡,但它進入了“照片”選項卡的onCreateView。 現在,如果我在“照片”選項卡中,然后按“個人資料”標簽,它會顯示我的個人資料布局,但會進入“流”標簽的onCreateView。 它永遠不會進入配置文件選項卡的onCreateView。 為什么會發生? (我對其進行了調試,以查看它是否進入了正確的onCreateView以及我所描述的是結果)

該代碼與教程中的代碼相同。我只是更改了標題。

設置mTabPager。 將setOffscreenPageLimit設置0不能使用,因為有一個限制1。您可以改為使用“ onPageChangeListener”,並在“相機”選項卡中打開相機意圖。

mIndicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        Toast.makeText(this, "Changed to page " + position, Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
    }

    @Override
    public void onPageScrollStateChanged(int state) {
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM