Edittext obtiene automáticamente el foco cuando se mueve entre páginas en un paginador de vista

Tengo una actividad que contiene dos fragmentos dentro de un buscapersonas. Utilicé el mismo diseño para inflar esos fragmentos. El diseño tiene dos textos de edición colocados dentro de un diseño lineal que está dentro de un diseño relativo. El problema es cuando cambio del fragmento A al fragmento B, el primer texto de edición se enfoca en el fragmento A y cuando vuelvo del fragmento B al fragmento A, en lugar del primer texto de edición que tiene el foco, el segundo texto de edición obtiene el foco . Cómo resolverlo. Proporciono los esquemas y código fuente abajo. No he devuelto ningún código dentro de las clases de fragmento.

Actividad:

public class LoginActivity extends BaseActivity { public static final String selectedTabPosition = "selectedTabPosition"; //Tab tag name private static String TAB_1_TAG = "Email"; private static String TAB_2_TAG = "Mobile"; private TabLayout mTabLayout; private ViewPager mViewPager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); TAB_1_TAG = getResources().getString(R.string.tab_email); TAB_2_TAG = getResources().getString(R.string.tab_mobile); //Initialise views mViewPager = (ViewPager) findViewById(R.id.viewpager); mTabLayout = (TabLayout) findViewById(R.id.tabs); //set tab with view pager setupViewPager(mViewPager); mTabLayout.setupWithViewPager(mViewPager); setupTabIcons(); mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() { @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { dismissKeyboard(mViewPager); } @Override public void onPageScrollStateChanged(int state) { } }); } /** * Adding custom view to tab */ private void setupTabIcons() { LinearLayout tabOne = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.tab_custom, null); TextView tvIconOne = (TextView) tabOne.findViewById(R.id.tv_tab_title); tvIconOne.setText(TAB_1_TAG); mTabLayout.getTabAt(0).setCustomView(tabOne); setTypeface(tvIconOne, CustomFonts.Prime_regular); mTabLayout.getTabAt(0).getCustomView().setSelected(true); LinearLayout tabTwo = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.tab_custom, null); TextView tvIconTwo = (TextView) tabTwo.findViewById(R.id.tv_tab_title); tvIconTwo.setText(TAB_2_TAG); setTypeface(tvIconTwo, CustomFonts.Prime_regular); mTabLayout.getTabAt(1).setCustomView(tabTwo); } /** * Adding fragments to ViewPager * * @param viewPager The view pager */ private void setupViewPager(ViewPager viewPager) { ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); LoginFragment loginFragmentEmail = new LoginFragment(); Bundle emailBundle = new Bundle(); emailBundle.putInt(selectedTabPosition, 0); loginFragmentEmail.setArguments(emailBundle); LoginFragment loginFragmentMobile = new LoginFragment(); Bundle phoneBundle = new Bundle(); phoneBundle.putInt(selectedTabPosition, 1); loginFragmentMobile.setArguments(phoneBundle); adapter.addFrag(loginFragmentEmail, TAB_1_TAG); adapter.addFrag(loginFragmentMobile, TAB_2_TAG); 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) { return mFragmentList.get(position); } @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); } } } 

Fragmento:

  public class LoginFragment extends BaseFragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { super.onCreateView(inflater, container, savedInstanceState); View rootView = inflater.inflate(R.layout.fragment_login, container, false); return rootView; } 

Activity_login.xml:

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:orientation="vertical"> <ImageView android:id="@+id/iv_title" android:layout_width="200dp" android:layout_height="45dp" android:layout_centerHorizontal="true" android:layout_marginTop="30dp" /> <android.support.design.widget.TabLayout android:id="@+id/tabs" android:layout_width="match_parent" android:layout_height="@dimen/custom_tab_layout_height" android:layout_below="@+id/iv_title" android:layout_marginTop="@dimen/spacing_10" app:tabGravity="fill" app:tabIndicatorColor="@color/app_color_dark" app:tabMode="fixed"/> <View android:id="@+id/view" android:layout_width="match_parent" android:layout_height="@dimen/divider_height_small" android:layout_below="@+id/tabs" android:background="@color/gray_medium"/> <com.helper.CustomNonSwipeableViewpager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/view" app:layout_behavior="@string/appbar_scrolling_view_behavior"/> </RelativeLayout> 

fragment_login.xml:

  <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="@dimen/spacing_50" android:orientation="vertical"> <EditText android:id="@+id/et_email" android:layout_width="match_parent" android:layout_height="@dimen/spacing_48" /> <EditText android:id="@+id/et_password" android:layout_width="match_parent" android:layout_height="@dimen/spacing_48" android:layout_marginTop="@dimen/spacing_15"/> </LinearLayout> </RelativeLayout> 

AndroidManifest.xml:

  <activity android:name=".activities.LoginActivity" android:screenOrientation="portrait" /> 

En el archivo AndrodManifest,

android: windowSoftInputMode = stateHidden y android: windowSoftInputMode = adjustPan

CustomNonSwipeableViewpager.java:

  public class CustomNonSwipeableViewpager extends ViewPager { public CustomNonSwipeableViewpager(Context context) { super(context); } public CustomNonSwipeableViewpager(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { // Never allow swiping to switch between pages return false; } @Override public boolean onTouchEvent(MotionEvent event) { // Never allow swiping to switch between pages return false; } } 

ScreenShots: Antes de pasar a FragmentB:

Antes de pasar a FragmentB.

En el fragmento B: En el fragmento B.

Vuelve al Fragmento A del Fragmento B:

introduzca la descripción de la imagen aquí

2 Solutions collect form web for “Edittext obtiene automáticamente el foco cuando se mueve entre páginas en un paginador de vista”

Utilice el atributo requestFocus a su primer editText que siempre hará que editText para ganar el foco.

Haga los siguientes cambios en su archivo fragment_login.xml ,

 <EditText android:id="@+id/et_email" android:layout_width="match_parent" android:layout_height="@dimen/spacing_48"> <requestFocus /> </EditText> 

Puede desactivar el enfoque en el EditText durante el tiempo de ejecución del fragmento:

 EditText et_email_view = (EditText) rootView.findViewById(R.id.et_email); et_email_view.setFocusable(false); 
  • Android: Cajón de navegación en múltiples actividades
  • Cómo crear una cuadrícula de 10x10 en Android?
  • Tamaño de imagen de mapa de bits de Android en xml
  • Cómo crear un AttributeSet en Android?
  • Parse Exception: En la línea 1, columna 0: no se encontró ningún elemento
  • Problemas de procesamiento @ id / visible Android Studio
  • ¿Hay una manera de mostrar los números primero en el teclado virtual para Android?
  • Alinear el centro de texto con android
  • Android sdk main.out.xml error de análisis?
  • Cómo llamar a los colores de los recursos de forma dinámica en Android?
  • Android support-v7 CardView: La vista de texto de encabezado con otro color de fondo no se extiende hasta que los bordes
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.