3つのタブ(3つのフラグメント)を含むタブレイアウトの申し込みフォームを作成しました。私は以前の断片で「次へ」をクリックした後、次の断片にナビゲートすることに成功しました。しかし、私の問題は、自分の現在のタブを強調表示することができないことです。これは、前のフラグメントで「次へ」をクリックしたときに強調表示する必要があります。Android:ナビゲーション後のタブレイアウトの次のタブのタイトルを強調表示する方法
次は私の最初のフラグメント(アカウント情報)である:誰もが後に次のタブ(フラグメント)のタイトルを強調表示する方法を提案することができ
@Override
public void onClick(View v) {
emailid = email.getText().toString();
if (!isValidEmail(emailid)) {
email.setError("Invalid Email");
}
pass = password.getText().toString();
if (!isValidPassword(pass)) {
password.setError("Password cannot be empty");
}
confirmPass = confirmPassword.getText().toString();
if (!isValidPassword(confirmPass)) {
confirmPassword.setError("Password cannot be empty");
}
私は以下のコードを使用して次のフラグメントにナビゲートしています、それにナビゲートする?
if (isValidEmail(emailid) && isValidPassword(pass)) {
viewPager = (ViewPager) getActivity().findViewById(R.id.pager);
viewPager.setCurrentItem(1);
}
}
以下は私のアクティビティコードです。どのようにしてタブ上のタッチイベントまたはクリックイベントを無効にできますか?
あなたがviewPager.addOnPageChangeListener
、あなたがこのようなメソッドを実装することができます条件
あたりとして再書き込みタブ名に持つonPageSelected
方法でこのメソッドを実装する必要があり、このアプローチのための
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
tabLayout.addTab(tabLayout.newTab().setText("Account Info"));
tabLayout.addTab(tabLayout.newTab().setText("Personal Info"));
tabLayout.addTab(tabLayout.newTab().setText("Confirmation"));
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
viewPager = (ViewPager) findViewById(R.id.pager);
viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager());
viewPager.setAdapter(viewPagerAdapter);
viewPager.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event)
{
return true;
}
});
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
// This method will be invoked when a new page becomes selected.
@Override
public void onPageSelected(int position) {
Toast.makeText(SignupActivity.this, "Selected page position: " + position, Toast.LENGTH_SHORT).show();
tabLayout.tabP(true);
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
私はあなたのシナリオを試しています、私は成功するかどうかを教えてくれます。私はもう一つの疑問を持っています。私は手動のタッチを無効にする方法と、タブをクリックする方法はありますか? –
okk **あなたのアクティビティから** tabLayout.setupWithViewPager(viewPager); **を削除する必要があります –
実際に私は自分のアクティビティでそのコードを承認していません!!! –