2016-10-14 18 views
0

フラグメントのロックに関するクエリがあります。実際には、下部のタブナビゲーションに3つのフラグメントがあります。 3つのフラグメントのすべては、基本的には私がedittextから値を選んでいるエントリフォームです。しかし、私は1つのフォームを提出するとき、すなわち、あるフラグメントがデータを提出するときに、ユーザの切り替えからロックされ、ユーザはその古いフラグメントに戻り、警告メッセージが表示され、既にこのセクションを提出したことを示すメッセージが表示され、戻ることはできません。誰でも可能にする方法を提案してください。切り替え後のフラグメントのロック

私は3つのフラグメントfrg1、frg2、frg3を持っていて、それぞれデータを取得するためのフォームが含まれています。それぞれのフォームには以下のサブミットボタンがあります。あなたは古い断片にもう一度戻ることはできないように注意する必要があります。今は、投稿後に別の断片に切り替えることができる部分をコーディングしましたが、私はまだ戻ってきます。基本的には、古い断片に戻ります。私がこれを解決するのを助けてください。

答えて

1

あなたが唯一の解決策は、このようなカスタムViewPagerを作成することですviewpager使用している場合:あなたはあなたがそうでない場合viewPager

をロックし、ロックを解除することができるようになります)setPagingEnabled(有

public class NoScrollViewPager extends ViewPager { 

private boolean isPagingEnabled = false; 

public NoScrollViewPager(Context context) { 
    super(context); 
} 

public NoScrollViewPager(Context context, AttributeSet attrs) { 
    super(context, attrs); 
} 

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    return this.isPagingEnabled && super.onTouchEvent(event); 
} 

@Override 
public boolean onInterceptTouchEvent(MotionEvent event) { 
    return this.isPagingEnabled && super.onInterceptTouchEvent(event); 
} 

public void setPagingEnabled(boolean b) { 
    this.isPagingEnabled = b; 
} 

をフラグメントを膨張させるadd()の代わりにreplace()を使用してください。

乾杯。

+0

こんにちはPanabuntu、私はviewpagerを直接使用していません。実際に私はroughhike/bottomtab navigation.Anyを使用しています。この変更を組み込む方法を提案できます – DrManhattan

+0

この関数を使用して、INVISIBLEまたはGONEをタブにします。ユーザーはそのタブを選択できません。 mBottomBar.getTabAtPosition(position).setVisibility(View.GONE); ところで、どのサードパーティライブラリを使用しているのかをトピックで指定する必要があります:) – Buntupana