我想在Android的相同標籤下打開很多視圖。換句話說,我有一個包含許多選項卡的選項卡主機。其中一個選項卡具有列表視圖作爲內容。當一個列表項被點擊時,我希望它在同一個標簽下打開一個新的視圖。我做了一些Google研究,發現我必須使用android片段,但我不確定這一點。你認爲片段的使用是最好的解決方案,還是你有其他想法?先謝謝你。如何在Android的相同標籤下打開很多視圖?
1
A
回答
1
Fragment和FragmentManager是自Honeycomb以來推薦的路徑。如果您打算定位薑餅或更早的設備,您將需要使用兼容性庫(http://developer.android.com/sdk/compatibility-library.html)。
您會注意到ActivityGroup已被棄用。這並不意味着你現在不能使用它,但是在某個時候你會被迫遷移,所以你現在就可以開始了。
+0
好的,謝謝.. – 2012-03-02 12:55:04
0
在ViewAnimator中使用ActivityGroup類,並通過ID獲取正確的活動。
public class YourActivity extends ActivityGroup {
private Stack<String> ids;
private LocalActivityManager activityManager;
private ViewAnimator animator;
private int serial;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.group);
ids = new Stack<String>();
animator = (ViewAnimator) findViewById(R.id.animator);
activityManager = getLocalActivityManager();
}
@Override
public void startActivity(final Intent intent) {
String id = "id" + serial++;
ids.push(id);
View view = activityManager.startActivity(id, intent).getDecorView();
animator.addView(view);
animator.setDisplayedChild(ids.size() - 1);
}
@Override
public boolean onKeyDown(final int keyCode, final KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
int size = ids.size();
if (size > 0) {
String topId = ids.pop();
View view = activityManager.destroyActivity(topId, true).getDecorView();
animator.removeView(view);
if (size > 1) {
topId = ids.get(size - 2);
if (activityManager.getActivity(topId) instanceof ClassA) {
((ClassA) activityManager.getActivity(topId)).onResume();
} else if (activityManager.getActivity(topId) instanceof ClassB) {
((ClassB) activityManager.getActivity(topId)).onResume();
}
return true;
}
}
}
return super.onKeyDown(keyCode, event);
}
}
+0
但ActivityGroup不被棄用? – 2012-03-02 12:42:18
相關問題
- 1. Durandal - 在相同視圖和視圖模型下打開多個選項卡
- 2. 如何在相同的視圖中打開相機
- 3. 在標籤下的Android列表視圖
- 4. 是可以在android中的相同標籤打開新的意圖?
- 5. 多個UIButton打開相同的視圖,但不同的內容
- 6. 如何從標籤欄打開相機?
- 7. 從不同的視圖控制器打開相同的視圖
- 8. ios webview在不同標籤頁/ web視圖中打開鏈接
- 9. 圖JS相同的標籤,多數據
- 10. Android Tabhost - 每個標籤中的相同視圖
- 11. 如何使用標籤視圖的Android
- 12. 的UITabBarController與相同視圖控制器在不同的標籤
- 13. 每次選擇標籤時如何獲得相同的視圖?
- 14. 很多PHP標籤的開啓/關閉
- 15. 在新標籤中打開相同的window.location.origin無緩存
- 16. 如何在同一視圖中多次添加標籤 - iOS8 [SWIFT]
- 17. 開始在相同的標籤與新標籤下載的原因是什麼?
- 18. 打開在接下來的窗口(標籤)圖像縮略圖
- 19. 編輯標籤在下一個視圖很長
- 20. 如何阻止用戶在同一個瀏覽器的多個標籤中打開相同的網址?
- 21. 如何在默認視圖中打開默認視圖android
- 22. Android:使用不同的標籤和標籤狀態視圖
- 23. ANDROID - 在android中按下按鈕時如何打開相機?
- 24. 的OutOfMemoryError打開很多的小圖片
- 25. 如何在一個標籤中打開不同標籤中的活動?
- 26. 移動視圖中有很多邊緣!太多!重要標籤
- 27. 使用Perl打開並閱讀很多文件,結尾相同
- 28. Android - 在多個視圖上渲染相同的視頻
- 29. iOS不同的標籤指向相同的視圖
- 30. 相同的片段與不同標籤上的列表視圖
你打算如何返回到同一個選項卡上的列表視圖?片段聽起來是一個不錯的選擇,但你有沒有想過在那裏需要的所有流程? – 2012-03-02 12:42:32
不知道,也許通過重寫onBackPressed方法? – 2012-03-02 12:45:34