我想在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. 如何在相同的視圖中打開相機
- 2. 在標籤下的Android列表視圖
- 3. 是可以在android中的相同標籤打開新的意圖?
- 4. 多個UIButton打開相同的視圖,但不同的內容
- 5. 如何從標籤欄打開相機?
- 6. 從不同的視圖控制器打開相同的視圖
- 7. 圖JS相同的標籤,多數據
- 8. 如何使用標籤視圖的Android
- 9. 的UITabBarController與相同視圖控制器在不同的標籤
- 10. 每次選擇標籤時如何獲得相同的視圖?
- 11. 在新標籤中打開相同的window.location.origin無緩存
- 12. 如何在同一視圖中多次添加標籤 - iOS8 [SWIFT]
- 13. 打開在接下來的窗口(標籤)圖像縮略圖
- 14. 開始在相同的標籤與新標籤下載的原因是什麼?
- 15. 編輯標籤在下一個視圖很長
- 16. 如何在默認視圖中打開默認視圖android
- 17. 如何阻止用戶在同一個瀏覽器的多個標籤中打開相同的網址?
- 18. 移動視圖中有很多邊緣!太多!重要標籤
- 19. iOS不同的標籤指向相同的視圖
- 20. 如果標籤是相同的更改視圖
- 21. 如何停止在移動視圖上打開導航欄的導航標籤?
- 22. 如何在谷歌博客打開相同的標籤內部鏈接(鏈接標籤)
- 23. 如何在應用程序重新打開時顯示相同的視圖
- 24. 如何在android webview中打開相機?
- 25. 打開URL從不同的標籤
- 26. 如何在不同視圖中重用相同的表視圖?
- 27. 如何在打開新窗口時顯示Android標籤欄
- 28. 如何用html,css,jquery等下載很多次相同的圖片?
- 29. 草圖如何在多個窗口/選項卡中打開相同的文件?
- 30. Android Studio - 如何在標籤中打開多個項目,就像Eclipse
你打算如何返回到同一個選項卡上的列表視圖?片段聽起來是一個不錯的選擇,但你有沒有想過在那裏需要的所有流程? – 2012-03-02 12:42:32
不知道,也許通過重寫onBackPressed方法? – 2012-03-02 12:45:34