2016-11-21 8 views
0

私は自分のUIデザインで3つの画面を持っています。Androidで同じフラグメントでリレーショナルビューを実装する方法は?

画面1:進行状況バーと情報テキストが表示されます。

画面2:操作が成功すると、この画面が開き、成功のメッセージが表示されます。

画面3:操作が失敗すると、この画面が開き、失敗メッセージが表示されます。

これらの画面には既に追加部品がありますが、説明を簡単にしたいと思います。 ご覧のとおり、実際にはハードな操作はなく、情報テキストとコンポーネントのみを表示しています。

私の心には3つの方法があります。

アプローチ1:1回の操作ごとに3つのフラグメントを作成します。

アプローチ2:1つのフラグメントを作成し、1つのレイアウトを作成し、フロー内のすべてのビュー(進行状況、エラー、成功)を描画し、表示または非表示に管理します。

アプローチ3:1つのフラグメントを作成し、3つの異なるレイアウトを作成し、次のステップごとにonCreateViewを呼び出し、異なるレイアウトのフラグメントを展開します。

この種のプラクティスには最適なアプローチがありますか?

+1

alertdialogsのような単純なメッセージは、まさにこの目的のためであることを示しています。あなたが晴れたときに却下する選択肢があるので、自由にそれらを使用してください – uguboz

答えて

0

私は2番目のアプローチを選択します。

最初のアプローチでは、TextViewメッセージのような単純なビューを表示するために3つのフラグメントを管理するのは普通ではないと思うので、単純な作業が複雑になります。

第3のアプローチも良い方法です。

しかし、私はまだそれがより簡単でシンプルだと思うだけで、新しいレイアウトを膨らませるときよりも視界を見えるようにしたり消えたりすると思います。

2番目の方法は、使用が簡単で使いやすいため、私は選択しました。 あなただけ

private LinearLayout mMyView1 
private LinearLayout mMyView2 
private LinearLayout mMyView3 

mMyView1 = (LinearLayout) findViewById(R.id.myid1); 
mMyView2 = (LinearLayout) findViewById(R.id.myid2); 

//than set visible or gone 
mMyView1.setVisibility(View.GONE); 
mMyView2.setVisibility(View.VISIBLE); 

が実は、私は私のアプリGitHubであなたの第二のアプローチを使用して、グローバル変数に設定する必要があります。だから私はお勧めします。 しかし、もっと複雑な方法をしたい場合は、どちらのアプローチが良いかを検討する必要があります。

EDIT

@ugubozはコメントとして、あなたは他の方法を使用することができますDialogsまたはSnackbar

関連する問題