2017-08-28 36 views
0

Ich habe ein Problem, dass, wenn ich zwischen verschiedenen Tabs wechseln, der Prozess für eine Sekunde oder zwei Lags. Wie kann ich diese Verzögerung entfernen? Es gibt keine solche Sache in oncreate Funktion der Fragmente. Ich poste den Code hier. Lag zwischen Switch-Registerkarte Fragment in Android

Dies ist der Code für die Aktivität, die das Fragment Dashboardnew ruft:

private void setupDrawerContent(final NavigationView navigationView) { 
    //revision: this don't works, use setOnChildClickListener() and setOnGroupClickListener() above instead 
    expandableList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { 
     @Override 
     public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) { 
      if(i==0) { 
       //Toast.makeText(getApplicationContext(),"View Tasks",Toast.LENGTH_LONG).show(); 
       fab.setVisibility(View.VISIBLE); 
       if (filterApplied) { 
        persistentbottomSheet.setVisibility(View.VISIBLE); 
        persistentbottomSheet.bringToFront(); 
        fab.bringToFront(); 
       } 
       fragment = new DashboardNew(); 
       if (fragment != null) { 
        manager.beginTransaction().replace(R.id.dashboard_frame, fragment).commit(); 
        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
        drawer.closeDrawer(GravityCompat.START); 
       } 
       /* new Handler().postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         if (fragment != null) { 
          manager.beginTransaction() 
            .replace(R.id.dashboard_frame, fragment) 
            .commit(); 

         } 
        } 
       }, 300);*/ 
       //drawer.closeDrawer(GravityCompat.START); 
      } 

      if(i==1) { 

      } 

      if(i==2) { 
       prefs.edit().remove("firstTime").apply(); 
       Intent intent = new Intent(getApplication(), Login.class) 
         .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
       finish(); 
       intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK); 
       startActivity(intent); 
      } 

      return false; 
     } 
    }); 

    expandableList.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { 
     @Override 
     public boolean onChildClick(ExpandableListView expandableListView, View view, int groupPosition, int childPosition, long l) { 
      if (groupPosition == 1 && childPosition == 0) { 
       fabvisibility = false; 
       //so this code only executes if the 2nd child in the 2nd group is clicked 
       fragment=new AddUser(); 
       if (fragment != null) { 
        manager.beginTransaction() 
          .replace(R.id.dashboard_frame, fragment,"AddUser") 
          //.add(fragment,"AddUser") 
          // .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
          .commit(); 
       } 
       drawer.closeDrawer(GravityCompat.START); 
      } 

      if (groupPosition == 1 && childPosition == 1) { 
       //so this code only executes if the 2nd child in the 2nd group is clicked 
       fabvisibility = false; 
       fragment=new ViewUsers(); 
       if (fragment != null) { 
        manager.beginTransaction() 
          .replace(R.id.dashboard_frame, fragment) 
          .commit(); 
        drawer.closeDrawer(GravityCompat.START); 
       } 
      } 

      return false; 
     } 
    }); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    switch (item.getItemId()) { 
     case android.R.id.home: 
      drawer.openDrawer(GravityCompat.START); 
      return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 

Der Code für Dashboardnew Fragment ist:

initialize(rootview); 
    clicklisteners(); 
    createViewPager(viewPager); 
    tabLayout.setupWithViewPager(viewPager); 
    createTabIcons(); 

    return rootview; 
} 

private void clicklisteners() 
{ 
    usualTasks.setOnClickListener(this); 
} 
@Override 
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
    super.onViewCreated(view, savedInstanceState); 
    //you can set the title for your toolbar here for different fragments different titles 
    getActivity().setTitle("The Checklist"); 
} 
@Override 
public void onClick(View v) { 
    switch (v.getId()) { 
     case R.id.toggleButton: { 

      if(usualTasks.isChecked()) { 
       Toast.makeText(getActivity(), "Toggle button is on", Toast.LENGTH_LONG).show(); 
       showRoleDialog(); 
       FragmentTransaction trans = getFragmentManager().beginTransaction(); 
       trans.replace(R.id.base_pending, new UsualTasks()); 

       WelcomeActivity.persistentbottomSheet.setVisibility(View.INVISIBLE); 
       //WelcomeActivity.fab.setVisibility(View.INVISIBLE); 

       trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
       trans.commit(); 
      } 
      else { 
       Toast.makeText(getActivity(), "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       FragmentTransaction trans = getFragmentManager().beginTransaction(); 
       trans.replace(R.id.usual_pending, new PendingTasks()); 
       trans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN); 
       if (WelcomeActivity.filterApplied == true) { 
        WelcomeActivity.persistentbottomSheet.setVisibility(View.VISIBLE); 
        WelcomeActivity.persistentbottomSheet.bringToFront(); 
        WelcomeActivity.fab.setVisibility(View.VISIBLE); 

       } 
       if(UsualTasks.shown) { 
        UsualTasks.mSnackBar.dismiss(); 
       } 

       trans.commit(); 
      } 
     } 
    } 
} 

public void populateList(HashMap<Integer, String> myMap, List myList){ 
    Set<Map.Entry<Integer, String>> setMap = myMap.entrySet(); 
    Iterator<Map.Entry<Integer, String>> iteratorMap = setMap.iterator(); 
    int item=0; 
    while(iteratorMap.hasNext()) { 
     Map.Entry<Integer, String> entry = (Map.Entry<Integer, String>) iteratorMap.next(); 
     myList.add(entry.getValue()); 
     item++; 
    } 
} 

private void showRoleDialog() { 
    final Dialog dialog = new Dialog(getContext()); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.usualtask_dialog); 
    rolelist = new ArrayList<Map<Integer,String>>(); 
    roles= new HashMap<Integer, String>(); 

    roles.put(1, "Senior Manager"); 
    roles.put(2, "Admin"); 
    roles.put(3, "HR"); 
    populateList(roles,rolelist); 

    ArrayAdapter arrayAdapter = new ArrayAdapter<String>(getContext(), android.R.layout.simple_list_item_single_choice, rolelist) 
    { 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent){ 
      // Get the current item from ListView 
      View view = super.getView(position,convertView,parent); 
      TextView tv = (TextView) view.findViewById(android.R.id.text1); 
      tv.setTextColor(Color.parseColor("#353b41")); 
      return view; 

     } 
    }; 
    dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 

    selectRole= (ListView)dialog.findViewById(R.id.selectrole); 
    submitRole= (Button)dialog.findViewById(R.id.btsubmitrole); 
    selectRole.setChoiceMode(ListView.CHOICE_MODE_SINGLE); 
    selectRole.setAdapter(arrayAdapter); 

    selectRole.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {} 
    }); 

    submitRole.setOnClickListener(new View.OnClickListener(){ 

     @Override 
     public void onClick(View view) { 
      dialog.dismiss(); 
     } 
    }); 

    dialog.show(); 
} 

private void createTabIcons() { 
    RelativeLayout tabOne = (RelativeLayout) LayoutInflater.from(getContext()).inflate(R.layout.pending_tab, null); 
    TextView textTab=(TextView)tabOne.findViewById(R.id.tab); 
    ImageView imageTab=(ImageView) tabOne.findViewById(R.id.notifyimage); 

    //TextDrawable drawable = TextDrawable.builder().buildRound("999",Color.RED); // radius in px 
    TextDrawable drawable = TextDrawable.builder() 
      .buildRoundRect("999",Color.RED,18); // radius in px 
    imageTab.setImageDrawable(drawable); 
    textTab.setText("Pending"); 
    tabLayout.getTabAt(1).setCustomView(tabOne); 

    RelativeLayout tabTwo = (RelativeLayout) LayoutInflater.from(getContext()).inflate(R.layout.completed_tab, null); 
    TextView textTab1=(TextView)tabTwo.findViewById(R.id.pending_tab); 
    textTab1.setText("Completed"); 
    tabLayout.getTabAt(0).setCustomView(tabTwo); 
} 

private void initialize(View rootview) { 
    toolbar = (Toolbar)rootview.findViewById(R.id.toolbar); 
    viewPager = (ViewPager)rootview.findViewById(R.id.viewpager); 
    tabLayout = (TabLayout)rootview.findViewById(R.id.tabs); 
    usualTasks=(ToggleButton)rootview.findViewById(R.id.toggleButton); 
} 

private void createViewPager(ViewPager viewPager) { 
     adapter = new DashboardNew.ViewPagerAdapter(getChildFragmentManager()); 
     adapter.addFrag(new CompletedTasks(), "Completed"); 
     adapter.addFrag(new PendingTasks(), "Pending"); 
     viewPager.setAdapter(adapter); 
} 

class ViewPagerAdapter extends FragmentPagerAdapter { 
    private final List<Fragment> mFragmentList = new ArrayList<>(); 
    private final List<String> mFragmentTitleList = new ArrayList<>(); 
    public ViewPagerAdapter(FragmentManager manager) { 
     super(manager); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     if (position == 0) 
      return new CompletedTasks(); 
     else 
      return new PendingTasks(); 
    } 

    @Override 
    public int getCount() { 
     return mFragmentList.size(); 
    } 

    public void addFrag(Fragment fragment, String title) { 
     mFragmentList.add(fragment); 
     mFragmentTitleList.add(title); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     return mFragmentTitleList.get(position); 
    } 
} 
} 

Und hier ist der Code für abgeschlossene Aufgaben:

completedTaskList = (ListView) rootview.findViewById(R.id.completedlist); 
    BaseMenuActivity.filterState=false; 

    if(UsualTasks.shown) { 
     UsualTasks.mSnackBar.dismiss(); 
    } 

    generateListdata(); 

    return rootview; 
} 

private void generateListdata() { 
    completedTasks.add(new completedTasks("Call the Owner","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.access_dashboard)); 
    completedTasks.add(new completedTasks("Check the safety of patients","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.safety_dashboard)); 
    completedTasks.add(new completedTasks("Admin needs to do specific task","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.admin_dashboard)); 
    completedTasks.add(new completedTasks("Get the specific work done","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.access_dashboard)); 
    completedTasks.add(new completedTasks("Need to hire more resources","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.hr_dashboard)); 
    completedTasks.add(new completedTasks("How are patients behaving?","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.patient_experience_dashboard)); 
    completedTasks.add(new completedTasks("Need to adjust the audit report","Wembley GP","Daily",R.drawable.completed_tick,R.drawable.finance_dashboard)); 

    //getListView().setDividerHeight(10); 
    ArrayAdapter<com.example.attech.checklist_attech.Model.completedTasks> adapter = new CompletedTaskAdapter(getContext(), 0,completedTasks); 
    completedTaskList.setAdapter(adapter); 

    completedTaskList.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
     public void onItemClick(AdapterView<?> parent, View view, 
           int position, long id) { 
      if (position == 0) {} 

      if (position == 1) {} 

      if (position == 2) { 
       //Intent myIntent = new Intent(view.getContext(), ViewUser.class); 
       //startActivityForResult(myIntent, 0); 
      } 
     } 
    }); 
} 


} 

Dies ist der Code für pendenttasks:

initialize(rootview); 
     generateListdataAssigned(); 
     generateListdata(); 
     generateselectall(); 
     clickListeners(); 

     return rootview; 
    } 

    private void clickListeners() { 
     assignTask.setOnClickListener(this); 
     assignTaskbottom.setOnClickListener(this); 
    } 

    private void populateList(HashMap<Integer, String> myMap, List myList){ 
     Set<Map.Entry<Integer, String>> setMap = myMap.entrySet(); 
     Iterator<Map.Entry<Integer, String>> iteratorMap = setMap.iterator(); 
     int item=0; 
     while(iteratorMap.hasNext()) { 
      Map.Entry<Integer, String> entry = (Map.Entry<Integer, String>) iteratorMap.next(); 
      myList.add(entry.getValue()); 
      item++; 
     } 
    } 


    @Override 
    public void onClick(View v) { 
     switch (v.getId()) { 
      case R.id.assignTaskPending: { 
       selected = !selected; 

       if (selected) { 
        Toast.makeText(getActivity(), "Assigned", Toast.LENGTH_LONG).show(); 
        assignTask.setBackgroundResource(R.color.dark_grey); 
        Toast.makeText(getActivity(),""+WelcomeActivity.filterApplied,Toast.LENGTH_LONG).show(); 
        pendingTaskListAssigned.setVisibility(View.VISIBLE); 
        WelcomeActivity.persistentbottomSheet.setVisibility(View.INVISIBLE); 
        selectAllListView.setVisibility(View.VISIBLE); 
        assignTaskbottom.setVisibility(View.VISIBLE); 
        pendingTaskList.setVisibility(View.INVISIBLE); 

       } 
       else { 
        Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_LONG).show(); 
        Toast.makeText(getActivity(),""+WelcomeActivity.filterApplied,Toast.LENGTH_LONG).show(); 
        pendingTaskListAssigned.setVisibility(View.INVISIBLE); 
        assignTaskbottom.setVisibility(View.INVISIBLE); 
        selectAllListView.setVisibility(View.INVISIBLE); 
        assignTask.setBackgroundResource(R.drawable.box_grey); 
        pendingTaskList.setVisibility(View.VISIBLE); 
        if (WelcomeActivity.filterApplied) { 
         WelcomeActivity.persistentbottomSheet.setVisibility(View.VISIBLE); 
         WelcomeActivity.persistentbottomSheet.bringToFront(); 
         WelcomeActivity.fab.setVisibility(View.VISIBLE); 

        } 
       } 

       break; 
      } 

      case R.id.btassignTask: { 
       showAssignTaskDialog(); 
       break; 
      } 
     } 
    } 

    private void initialize(View rootview) { 
     pendingTaskList = (ListView) rootview.findViewById(R.id.pendinglist); 
     pendingTaskListAssigned = (ListView) rootview.findViewById(R.id.pendinglistassigned); 
     assignTask = (Button) rootview.findViewById(R.id.assignTaskPending); 
     assignTaskbottom = (Button) rootview.findViewById(R.id.btassignTask); 
     selectAllListView= (ListView)rootview.findViewById(R.id.selectalllist); 
    } 

    private void generateListdataAssigned() { 
     pendingTasksAssigned.add(new pendingTasks("System Tasks","Wembley GP","Daily",R.drawable.pending_clock_icon, R.drawable.safety_dashboard)); 
     pendingTasksAssigned.add(new pendingTasks("Call answer speed","Wembley GP","Daily",R.drawable.pending_clock_icon, R.drawable.access_dashboard)); 
     pendingTasksAssigned.add(new pendingTasks("Appointment reasons","Wembley GP","Daily",R.drawable.pending_clock_icon, R.drawable.access_dashboard)); 
     pendingTasksAssigned.add(new pendingTasks("Admin needs to do specific task","Wembley GP","Daily",R.drawable.pending_clock_icon, R.drawable.hr_dashboard)); 

     ArrayAdapter<pendingTasks> adapter = new PendingAssignedAdapter(getContext(), 0, pendingTasksAssigned); 
     pendingTaskListAssigned.setAdapter(adapter); 
     pendingTaskListAssigned.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       CheckBox checkBox=(CheckBox)view.findViewById(R.id.checkboxassigned); 
       checkBox.performClick(); 

       if(checkBox.isChecked()){ 
        countChecks = countChecks + 1; 
       } 
       else{ 
        countChecks = countChecks - 1; 
       } 

       if(check == true){ 
        selectAllListView.setItemChecked(0, false); 
        check = !check; 
       } 

       if(countChecks == pendingTaskListAssigned.getCount()){ 
        selectAllListView.setItemChecked(0, true); 
        check = ! check; 
       } 
      } 
     }); 
    } 

    //populating the arraylist, creating an adapter and setting it to a list view 
    private void generateListdata() { 
     pendingTasks.add(new pendingTasks("System Tasks", "Wembley GP", "Daily", R.drawable.pending_clock_icon, R.drawable.safety_dashboard)); 
     pendingTasks.add(new pendingTasks("Call answer speed", "Wembley GP", "Daily", R.drawable.pending_clock_icon, R.drawable.access_dashboard)); 
     pendingTasks.add(new pendingTasks("Appointment reasons", "Wembley GP", "Daily", R.drawable.pending_clock_icon, R.drawable.access_dashboard)); 

     ArrayAdapter<pendingTasks> adapter = new PendingTaskAdapter(getContext(), 0, pendingTasks); 
     pendingTaskList.setAdapter(adapter); 
     pendingTaskList.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       showInputDialog(); 

       if (position == 0) {} 

       if (position == 1) { 
        //Intent myIntent = new Intent(view.getContext(), AddUser.class); 
        //startActivityForResult(myIntent, 0); 
       } 

       if (position == 2) { 
        //Intent myIntent = new Intent(view.getContext(), ViewUser.class); 
        //startActivityForResult(myIntent, 0); 
       } 
      } 
     }); 
    } 

    private void generateselectall() { 
     selectallList= new ArrayList<Map<Integer,String>>(); 
     selectall= new HashMap<Integer, String>(); 

     selectall.put(1, "Select All"); 
     populateList(selectall,selectallList); 
     ArrayAdapter arrayAdapter = new ArrayAdapter<String>(getContext(), 
       android.R.layout.simple_list_item_single_choice, selectallList) 
     { 
      @Override 
      public View getView(int position, View convertView, ViewGroup parent){ 
       // Get the current item from ListView 
       View view = super.getView(position,convertView,parent); 
       TextView tv = (TextView) view.findViewById(android.R.id.text1); 
       tv.setTextColor(Color.BLACK); 
       tv.setTextSize(13); 
       ViewGroup.LayoutParams params = view.getLayoutParams(); 
       // Set the height of the Item View 
       params.height = LinearLayout.LayoutParams.WRAP_CONTENT; 
       view.setLayoutParams(params); 
       view.setPadding(37,0,10,10); 
       return view; 
      } 
     }; 



     selectAllListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); 
     selectAllListView.setAdapter(arrayAdapter); 
     selectAllListView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       //Toast.makeText(getContext(), "Hello", Toast.LENGTH_SHORT).show(); 
       int firstListItem = pendingTaskListAssigned.getFirstVisiblePosition(); 
       int lastVisibleItem = pendingTaskListAssigned.getFirstVisiblePosition() + pendingTaskListAssigned.getChildCount() - 1; 
       check = ! check; 

       for(int i=0; i < pendingTaskListAssigned.getCount(); i++){ 
        if(i>lastVisibleItem || i<firstListItem){ 
         View item = (View) pendingTaskListAssigned.getAdapter().getView(i, null, pendingTaskListAssigned); 
         CheckBox checkbox = (CheckBox)item.findViewById(R.id.checkboxassigned); 
         checkbox.setChecked(check); 
        } 
        else{ 
         ViewGroup item = (ViewGroup)pendingTaskListAssigned.getChildAt(i - firstListItem); 
         CheckBox checkbox = (CheckBox)item.findViewById(R.id.checkboxassigned); 
         checkbox.setChecked(check); 
        } 
       } 

       if(check == true){ 
        countChecks = pendingTaskListAssigned.getCount(); 
       } 
       else{ 
        countChecks = 0; 
       } 
      } 
     }); 
    } 

    protected void showInputDialog() { 
     final Dialog dialog = new Dialog(getContext()); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.task_dialog); 
     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
     tbutton = (ToggleButton)dialog.findViewById(R.id.toggleButton); 
     toollamp= (ImageButton)dialog.findViewById(R.id.lamptool); 
     tooli= (ImageButton)dialog.findViewById(R.id.itool); 
     tooldetails= (TextView) dialog.findViewById(R.id.tooldetail); 
     submit=(Button)dialog.findViewById(R.id.btsubmit); 

     toollamp.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View view) { 
       tooldetails.setText("Target for staff 2 rings and answer.Check daily for 2x 5 mins"); 
      } 
     }); 

     submit.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       //Toast.makeText(getActivity(), "Dismiss", Toast.LENGTH_LONG).show(); 
       dialog.dismiss(); 
      } 
     }); 

     tooli.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View view) { 
       tooldetails.setText("Check daily for 2x 5 mins"); 
      } 
     }); 

     tbutton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       if(tbutton.isChecked()) { 
        Toast.makeText(getActivity(), "Toggle button is on", Toast.LENGTH_LONG).show(); 
       } 
       else { 
        Toast.makeText(getActivity(), "Toggle button is Off", Toast.LENGTH_LONG).show(); 
       } 
      } 
     }); 

     dialog.show(); 
    } 

    protected void showAssignTaskDialog() { 
     final Dialog dialog = new Dialog(getContext()); 
     dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
     dialog.setContentView(R.layout.assign_task_dialog); 
     dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
     Close= (ImageButton)dialog.findViewById(R.id.close); 
     myself=(Button)dialog.findViewById(R.id.btmyself); 
     others=(Button)dialog.findViewById(R.id.btothers); 

     Close.setOnClickListener(new View.OnClickListener(){ 

      @Override 
      public void onClick(View view) { 
       dialog.dismiss(); 
      } 
     }); 

     myself.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "Myself", Toast.LENGTH_LONG).show(); 
      } 
     }); 

     others.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Toast.makeText(getActivity(), "Others", Toast.LENGTH_LONG).show(); 
       Intent intent= new Intent(getContext(), AssignTasks.class); 
       startActivity(intent); 
      } 
     }); 

     dialog.show(); 
    } 
} 
+2

zeigen Sie Ihren Code zuerst =) – DEADMC

+0

Fragment haben onResume .. Wie viele Registerkarten haben Sie? Welche Daten laden Sie? Wie viele Hierarchie in Ihrem XML? – ZeroOne

+0

Der Code ist jetzt hier: D Ich bin auch neu zu stackoverflow ...also stackoverflow-ed, wie man der Frage auch Code hinzufügt xD – Pousti

Antwort

0

Für diejenigen, die dieses Problem haben, verwenden Sie bitte cardviews und recyclerviews. Die Daten waren zu groß für die Listenansicht. Gebrauchte Kartenansichten und Recyclerviews statt, und die Verzögerung war weg.

0

Zunächst einmal kann ich nicht bekommen, warum Sie Fragmente zweimal

Sie tatsächlich Fragmente schaffen hier

private void createViewPager(ViewPager viewPager) { 
     adapter = new DashboardNew.ViewPagerAdapter(getChildFragmentManager()); 
     adapter.addFrag(new CompletedTasks(), "Completed"); 
     adapter.addFrag(new PendingTasks(), "Pending"); 
     viewPager.setAdapter(adapter); 
} 

erstellen und sie dann hier erstellen.

wieder
@Override 
public Fragment getItem(int position) { 
    if (position == 0) 
     return new CompletedTasks(); 
    else 
     return new PendingTasks(); 
} 

ich richtig erraten diese Zeilen

adapter.addFrag(new CompletedTasks(), "Completed"); 
adapter.addFrag(new PendingTasks(), "Pending"); 

In einem anderen Fall ist die Entfernung werden Sie große Probleme mit Bildschirm-Rotation haben.

Sie Off-Screen-Limit festlegen können (standardmäßig seine 1 nur), so werden Fragmente nur einmal erstellt werden und wird nicht

viewPager.setOffscreenPageLimit(2); 

auch entfernt werden, ich weigere mich, zu verstehen, was diese Zeilen bedeuten

completedTasks.add(new completedTasks(...); 

Ist es CompletedTasks Fragment? Was fügst du hinzu und wie?

+0

Ich kann diese Zeilen Code nicht entfernen, weil, wenn ich die Anwendung abstürzt .. plus die Zeilen completedtasks.add sind neue Elemente in der Liste der abgeschlossenen Aufgaben hinzufügen. – Pousti

+0

Dies ist der Code von completedTasks. 'code' public completedTasks (Zeichenfolge Taskname, String Practicename, Zeichenfolgenzeitachse, int taskimage, int categoryimage) { this.Practicename = Practicename; this.Taskname = Aufgabenname; this.timeline = Zeitleiste; this.taskimage = Aufgabenbild; this.categoryimage = Kategoriebild; this.practiceimage = Übungsbild; this.timeimage = Zeitbild; } – Pousti

0

Es gibt keine solche Sache in onCreate() - Funktion der Fragmente.

Aber es ist immer noch nachhinken, oder? Ich denke, das Problem ist mit Ihrem Layout, das zu schwer ist, da die einzige Arbeit, die Sie in onCreateView() tun, ist das Layout Ihres Layouts.

Bitte überprüfen Sie, ob Ihre Bilder eine sehr hohe Pixeldichte haben. Dies ist ein häufiger Fehler. Das Android-System benötigt Zeit, um die hohen Pixelbilder im Layout in eine niedrigere Pixeldichte umzuwandeln, die für Ihr Gerät geeignet ist, was Zeit benötigt und Verzögerungen verursacht. Anderer Grund könnte schlechte Layout-Hierarchie sein.

+0

Symbole sind von hoher Auflösung, aber in einer guten App sollten Sie Ressourcen mit guter Definition verwenden. Was ist mit Layout können Sie bitte erarbeiten? Hilf mir bei diesem Problem. Ich bleibe einen ganzen Tag dran – Pousti