Ich habe 5 Registerkarte in Viewpager. Standard 1. Registerkarte ist ausgewählt. 1. Registerkarte öffnen Sie die System-Standard-Kamera. Dann gehe ich von 1. zu 2. und 2. zu 3. und so weiter .. Aber Problem ist, wenn ich zurück von 3., 4. oder 5. bis 2. Registerkarte öffnet es Kamera, aber ich habe keine Kamera in der zweiten Registerkarte. Es ist auf der ersten Registerkarte. Warum das passiert? Ich verstehe nicht, ...Tab Swipe funktioniert nicht richtig
Bitte helfen Sie mir ...
My-Code ist wie unten:
TabsPagerAdapterLoginSuccess.java:
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class TabsPagerAdapterLoginSuccess extends FragmentPagerAdapter {
public TabsPagerAdapterLoginSuccess(FragmentManager supportFragmentManager) {
super(supportFragmentManager);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
// Top Rated fragment activity
return new CameraFragment();
case 1:
// Games fragment activity
return new FriendRequestFragment();
case 2:
// Movies fragment activity
return new FriendFragment();
case 3:
// Movies fragment activity
return new SearchFragment();
case 4:
return new ProfileFragment();
}
return null;
}
@Override
public int getCount() {
return 5;
}
}
LoginSuccess.java
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.design.widget.TabLayout;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
public class LoginSuccess extends AppCompatActivity {
@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bottomtabslider);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar1);
setSupportActionBar(toolbar);
TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs1);
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.cameraicon1));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.friendrequest));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.friend));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.search));
tabLayout.addTab(tabLayout.newTab().setIcon(R.drawable.profileicon));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
final ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager1);
final TabsPagerAdapterLoginSuccess adapterLoginSuccess = new TabsPagerAdapterLoginSuccess(getSupportFragmentManager());
viewPager.setAdapter(adapterLoginSuccess);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
}
}
CameraFragment.java
import android.content.Intent;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.support.v4.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.util.Base64;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;
public class CameraFragment extends Fragment {
public String mycropimg,encodedImage;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.camerafragment, container, false);
((AppCompatActivity)getActivity()).getSupportActionBar().show();
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivityForResult(intent, 0);
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode == getActivity().RESULT_OK) {
Bitmap bp = (Bitmap) data.getExtras().get("data");
String partFilename = "image_" + System.currentTimeMillis()+UUID.randomUUID().toString().substring(0,8) + ".jpg";
storeCameraPhotoInSDCard(bp, partFilename);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bp.compress(Bitmap.CompressFormat.PNG, 50, stream);
byte[] byte_arr = stream.toByteArray();
encodedImage = Base64.encodeToString(byte_arr, 0);
Intent i=new Intent(getActivity(),CameraPostStatus.class);
i.putExtra("encoded_image",encodedImage);
i.putExtra("imgfilename",partFilename);
startActivity(i);
}
}
private void storeCameraPhotoInSDCard(Bitmap bitmap, String currentDate){
File outputFile = new File(Environment.getExternalStorageDirectory(), "image_" + System.currentTimeMillis()+UUID.randomUUID().toString().substring(0,8) + ".jpg");
try {
FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);
fileOutputStream.flush();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Ja genau .... –
Warum setzen Sie Viewpager Currunt Element in SetOnTabSelectedListener? –
dies tun 'viewPager.setOffscreenseiteLimit (5);' –