2012-11-28 8 views
27

में क्षैतिज स्वाइप के बाद ट्रिगर नहीं किया गया है मैंने एप्लिकेशन के लिए सूची के रूप में नेविगेशन मोड के साथ टैब दृश्य के साथ ही क्षैतिज स्वाइप दृश्य (टैब बदलने के लिए) लागू किया है। मैं एक्शनबैरशॉक & टैबपेज इंडिकेटर का उपयोग कर रहा हूं। मैंने टैब बदलने के बाद सामग्री को पुनः लोड करने के लिए टुकड़े का उपयोग किया।एक्शनबार की ऑनविगेशनइटम चयन (इंट स्थिति, लंबी वस्तु आईडी) जिंजरब्रेड

स्पिनर ड्रॉप डाउन में, मेरे पास 2 आइटम हैं। जब भी गतिविधि पुनः लोड हो जाती है या टैब पर मारने के बाद ये चयन हो रहे हैं।

लेकिन, अगर कड़ी चोट अन्य टैब का चयन करने के लिए किया जाता है, तो onNavigationItemSelected (पूर्णांक स्थिति, लंबे Itemid) जिंजरब्रेड संस्करण में शुरू हो रहा होगा नहीं हो रही :(हम जिंजरब्रेड 2.3.6, 2.3.3 पर यह परीक्षण किया है।

logcat में, मैं इस warning संदेश "View:onTouchEvent:ViewFlags" is DISABLED

मिला लेकिन, यह आईसीएस, Froyo, आदि पर पूरी तरह से ठीक काम करता है

आपका मदद बहुत सराहना की जाएगी।

निम्नलिखित कोड का टुकड़ा है:

public class MainPageActivity extends SherlockFragmentActivity implements 
     ActionBar.OnNavigationListener { 

    MenuItem menuItem; 
    EditText searchText; 
    public static Context mContext; 
    public static DataAdapter dataAdapter; 
    ArrayList<String> accountList; 
    public static List<View> currentViewBeingChanged = new ArrayList<View>(); 

    public static LayoutInflater layoutInflater; 
    public static String checktab = "running", nameComp; 
    int isRefresh; 
    public static boolean isAutoRefresh = true; 
    public static ArrayList<String> listItems; 
    public static boolean check; 
    public static boolean isAtleastOnce = true, listToBeRefreshed = false; 
    public static ActionBar actionBar; 
    public static int itemPosition, listPosition; 
    public static FragmentManager fragmentManager; 
    InputMethodManager imm; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     mContext = this; 

     layoutInflater = getLayoutInflater(); 

     fragmentManager = getSupportFragmentManager(); 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_page); 

     actionBar = getSupportActionBar(); 
     actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); 

     imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

     Context context = getSupportActionBar().getThemedContext(); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(context, 
       android.R.layout.simple_spinner_dropdown_item); 
     adapter.clear(); 
     for (int i = 0; i < ManageAccountLists.accountList.size(); i++) { 
      adapter.add(ManageAccountLists.accountList.get(i)); 
     } 

     actionBar.setListNavigationCallbacks(adapter, this); 

     tabPagerFunction(); 

    } 

    public void tabPagerFunction() { 

     FragmentPagerAdapter adapter = new GoogleMusicAdapter(
       getSupportFragmentManager()); 
     adapter.notifyDataSetChanged(); 

     ViewPager pager = (ViewPager) findViewById(R.id.pager); 
     pager.setAdapter(adapter); 

     checktab = "running"; 

     final TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator); 
     indicator.setViewPager(pager); 

     pager.setOnPageChangeListener(new OnPageChangeListener() { 

      @Override 
      public void onPageSelected(int arg0) { 

       System.out.println("Tab selected.................."); 

       if (arg0 == 0) { 

        // Running tab is selected 
        indicator.setCurrentItem(arg0); 

        checktab = "running"; 
        RunningInstancesActivity runningInstancesActivity = new RunningInstancesActivity(); 
        runningInstancesActivity.callThread(); 

       } else { 

        // Stopped tab is selected 
        indicator.setCurrentItem(arg0); 
        checktab = "stopped"; 
        StoppedInstancesActivity stoppedInstancesActivity = new StoppedInstancesActivity(); 
        stoppedInstancesActivity.callThread(); 
        InstanceStatusUpdate.isOnPostExecute = false; 

       } 

      } 

      @Override 
      public void onPageScrolled(int arg0, float arg1, int arg2) { 

      } 

      @Override 
      public void onPageScrollStateChanged(int arg0) { 

      } 
     }); 

    } 

    class GoogleMusicAdapter extends FragmentPagerAdapter { 

     private final String[] CONTENT = new String[] { "Running", "Stopped" }; 

     public GoogleMusicAdapter(FragmentManager fm) { 
      super(fm); 
      notifyDataSetChanged(); 

     } 

     @Override 
     public Fragment getItem(int position) { 

      switch (position) { 
      /** Running tab is selected */ 
      case 0: 
       checktab = "stopped"; 
       return RunningInstancesActivity.newInstance(0); 

       /** Stopped tab is selected */ 
      case 1: 

       checktab = "running"; 
       return StoppedInstancesActivity.newInstance(1); 
      } 
      return null; 

     } 

     @Override 
     public CharSequence getPageTitle(int position) { 
      return CONTENT[position % CONTENT.length].toUpperCase(); 
     } 

     public CharSequence getPageTitle(int position, int number) { 
      return CONTENT[position % CONTENT.length].toUpperCase(); 
     } 

     @Override 
     public int getCount() { 
      return CONTENT.length; 
     } 
    } 

    @Override 
    public boolean onNavigationItemSelected(int itemPosition, long itemId) { 

      System.out.println("Navigation item selected"); 

     // Performs fetching 
    } 



    @Override 
    public boolean dispatchTouchEvent(MotionEvent ev) { 

     System.out.println("Dispatch touvh event.."); 

     return super.dispatchTouchEvent(ev); 

    } 

} 
+0

क्या आपने नीचे अपना कोड देखा है? – Trinimon

उत्तर

0

जहाँ तक मुझे याद है के रूप में वहाँ (एबीएस) में स्वाइप करने के बाद नेविगेशन सूची को अद्यतन करने के साथ कुछ मुद्दों थे। इस मुद्दे को हल करने के लिए मैंने यही किया है और यह एंड्रॉइड 2.3.7 (एबीएस) के साथ ही एंड्रॉइड 4.0 (मूल एबी) के साथ काम करता है।

pager.setOnPageChangeListener(new OnPageChangeListener() { 
    @Override 
    public void onPageScrollStateChanged(int state) { 
    } 

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

    @Override 
    public void onPageSelected(int position) { 
     if (navigatioBarIsUsed) actionBar.setSelectedNavigationItem(position); 
     if (tabsAreUsed) actionBar.getTabAt(position).select(); 
    } 
}); 

आंतरिक रूप से यह पृष्ठ को संशोधित करता है - यह इतना अच्छा नहीं है - हालांकि यह एकमात्र समाधान था जो मुझे मिला।

चीयर्स

0

उपयोग इस कोड को ..

आपका टुकड़ा उपयोग अंदर

इस कोड।

@Override 
    public void setUserVisibleHint(boolean isVisibleToUser) { 
     // TODO Auto-generated method stub 
     super.setUserVisibleHint(isVisibleToUser); 
     if (isVisibleToUser) { 
      Activity activity = getActivity(); 
      ActionBar actionBar = ((ActionBarActivity) activity) 
        .getSupportActionBar(); 
      actionBar.setIcon(getResources().getDrawable(R.drawable.nearby)); 


     } 
    } 
1

इस

dependencies { 

compile "com.android.support:appcompat-v7:18.0.+" 
} 

कर की कोशिश करो और बजाय समर्थन पुस्तकालय का उपयोग करें।

संबंधित मुद्दे