2015-06-23 154 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 –