簡體   English   中英

在同一活動中使用2個搜索欄

[英]using 2 seekbars in the same activity

我有2個搜索欄A和B,我有2個文本視圖C和D。A在移動時編輯C的值,B在移動時編輯D的值。 我的代碼工作正常。 但是我想要它,以便當用戶使用A時,搜索欄B會被禁用,同樣,當用戶A使用搜索欄B時,也會被禁用。 搜索欄變為禁用狀態的方式是用戶單擊它以再次使用它。 因此,如果我使用搜索欄A,則將禁用B,然后如果我觸摸搜索欄B,則將啟用它,然后將A禁用。 或者,即使將此時為藍色的搜索桿顏色更改為淺灰色,以給出禁用它的錯覺,也可能是另一種方式。 紐威我嘗試了這個。 搜尋桿A

        @Override
        public void onStartTrackingTouch(SeekBar seekbar) {
            // TODO Auto-generated method stub

             seekbarB.setEnabled(false);
             seekbarA.setEnabled(true);
        }
        @Override
        public void onStopTrackingTouch(SeekBar seekbar) {
            // TODO Auto-generated method stub
             seekbarB.setEnabled(true);
             seekbarA.setEnabled(true);
        }

對於搜索欄B

@Override
        public void onStartTrackingTouch(SeekBar seekbar) {
            // TODO Auto-generated method stub
             seekbarB.setEnabled(true);
             //seekbarA.setEnabled(false);

        }
        @Override
        public void onStopTrackingTouch(SeekBar seekbar) {
            // TODO Auto-generated method stub
             seekbarB.setEnabled(true);
             seekbarA.setEnabled(true);
        }

但是這種工作有效,但是隨后當用戶停止使用兩個搜索欄時,被禁用的搜索欄又重新啟用了,除非用戶不觸摸,否則我不希望這樣做。 現在,我知道您的想法沒有將onstoptrackingtouch中的搜索欄設置為啟用。 好吧,我嘗試過,即使您觸摸了它,被禁用的搜索欄也永遠不會啟用。我什至為每個搜索欄都實現了一個ontouchlistener,以查看它是否將變為活動狀態,但它沒有。 所以我有三種方式來幫助我。 1.是否可以通過上面的方法來編輯我的方法,使其以我想要的方式工作? 2.我可以在哪里放置我的啟用搜索欄方法,以使搜索欄僅在用戶觸摸時才激活,從而實現了我上面所述的內容? 3.有沒有一種方法可以更改java中的自定義搜尋欄顏色以實現我想要的

你可以嘗試以下方法:把SeekBarLayout是包裹SeekBar ,並把OnTouchListener上的Layout ,然后重新啟用SeekBar ,當用戶觸摸Layout

SeekBar的顏色不能輕易更改(您需要創建彩色資源,請訪問此站點以生成此類資源)。

如果您想與用戶溝通,他一次只能使用一個SeekBar ,那么我將不使用

seekbar.setEnabled(false)

只需減小SeekBar的alpha值,使其SeekBar “蒼白”即可。 使用seekBar.setAlpha()或者,如果您希望目標API級別<11,請使用此庫的ViewHelper類。

暫無
暫無

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

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