2015-06-23 210 views
-2

我是android新手。我正在創建一個應用程序,其中包含一個帶有滑動選項卡布局的視圖尋呼機。當我點擊按鈕時,它在視圖尋呼機內進行一些計算。雖然這樣做,我希望禁用標籤之間的切換。所以在計算時不要在頁面之間滑動。 計算完成後,我希望再次啓用切換。誰能告訴我如何做到這一點? 在此先感謝。 我試過了。請看看它:如何在瀏覽器中禁用滑動瀏覽器android

public class Auto extends FragmentActivity{ 
    Button tests; 
    private ViewPager pager; 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.auto); 
       tests = (PaperButton)findViewById(R.id.action_button_tests); 
       tests.setOnClickListener(new View.OnClickListener() { 

        @Override 
        public void onClick(View v) { 
         if(pager.getCurrentItem()==0){ 
          tests.setTag(1); 
          tests.setText("START TEST"); 
         final int status = (Integer)v.getTag(); 
         if(status==1){ 
          tests.setText("STOP TEST"); 
          v.setTag(0); 
          int i; 
          Login.Communication_Ok=false; 
          for(i=0;(i<5 && Login.Communication_Ok!=true);i++) 
          Login.Send_Commands_To_Micro_Controller(1); 
          if(Login.Communication_Ok==true) 
          { 
           Video_Status=false; 
           Login.Bucket_Status = false; 
           Login.Auto_Mode_Bfr_Fuse =false; 
           for(i=0;(i<5 && Login.Auto_Mode_Bfr_Fuse!=true);i++) 
           Login.Send_Commands_To_Micro_Controller(3); 
           if(Login.Auto_Mode_Bfr_Fuse==true) 
           Toast.makeText(Auto.this, "Test started", Toast.LENGTH_LONG).show(); 
           else 
           { 
           Toast.makeText(Auto.this, "Communication Failure in Before Fuse connection Segment", Toast.LENGTH_LONG).show(); 
           tests.setText("START TEST"); 
           v.setTag(1); 
           return; 
           } 
           Test_Completed=false; 
           if(!Auto_Bucket_Tests_Thread.isAlive()) 
           Auto_Bucket_Tests_Thread.start(); 


          } 

         } 
         else{ 
          tests.setText("START TEST"); 

          v.setTag(1); 
         } 
         } 


         if(pager.getCurrentItem()==1){ 
          tests.setTag(1); 
          tests.setText("START TEST"); 

          final int status = (Integer)v.getTag(); 
          if(status==1){ 
           tests.setText("STOP TEST"); 
           v.setTag(0); 
           int i; 
           Login.Communication_Ok=false; 
           for(i=0;(i<5 && Login.Communication_Ok!=true);i++) 
           Login.Send_Commands_To_Micro_Controller(1); 
           if(Login.Communication_Ok==true) 
           { 
            Video_Status=false; 
            Login.Bucket_Status = false; 
            Login.Automode_After_connecting_fuse =false; 
            for(i=0;(i<5 && Login.Automode_After_connecting_fuse!=true);i++) 
            Login.Send_Commands_To_Micro_Controller(4); 
            if(Login.Automode_After_connecting_fuse==true){ 
            Toast.makeText(Auto.this, "Test started", Toast.LENGTH_LONG).show(); 



            **/*For Disabling swipe between tabs*/** 
            pager.setOnTouchListener(new OnTouchListener() { 

             @Override 
             public boolean onTouch(View v, MotionEvent event) { 
              pager.getCurrentItem(); 
              return false; 
             } 
            }); 
            pager.setEnabled(false); 

            } 
            else 
            { 
            Toast.makeText(Auto.this, "Communication Failure in After Fuse connection Segment", Toast.LENGTH_LONG).show(); 
            tests.setText("START TEST"); 
            v.setTag(1); 
            return; 
            } 
            Test_Completed=false; 

           } 


          } 
          else{ 
           tests.setText("START TEST"); 

           v.setTag(1); 
           } 

        } 
} } 
+1

你甚至可以在Google搜索回答嗎? [HERE](http://stackoverflow.com/questions/9650265/how-do-disable-paging-by-swiping-with-finger-in-viewpager-but-still-be-able-to-s) – snachmsm

+0

但在這裏,我將我的主要活動擴展到片段活動@snachmsm –

+0

那又如何?使用修改的'ViewPager',沒有什麼區別你使用它,片段,活動,無論...這是一個'View',只需'Context' – snachmsm

回答

1
public class CustomViewPager extends ViewPager { 

private boolean enabled; 

public CustomViewPager(Context context, AttributeSet attrs) { 
super(context, attrs); 
this.enabled = true; 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
if (this.enabled) { 
    return super.onTouchEvent(event); 
} 

return false; 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
if (this.enabled) { 
    return super.onInterceptTouchEvent(event); 
} 

return false; 
} 

public void setPagingEnabled(boolean enabled) { 
this.enabled = enabled; 
} } 

你只需要調用「setPagingEnabled」方法,「假」,用戶將無法刷卡進行分頁。

+0

但是,在這裏我的主要活動擴展片段活動@Ram –

+0

所以什麼是問題?片段活動沒有問題 –

+0

但在片段活動中沒有任何setPagingEnabled方法花花公子@Ram –