回答
一個快速反應將是否定,但讓我解釋爲什麼,並建議無效的工作;
屏幕實際上並沒有處理將字段放置到自己身上的問題,爲此他們可以對代理經理進行刪除,該經理可以是任何類型的經理,垂直,水平等。問題是所有經理都開始從頂部繪畫自己剩下。對於從底部開始繪製字段的管理員來說,它必須知道底部所在的位置,並添加組件而不是向下,這與管理器類中的所有低級代碼相反。您可以在BlackBerry API documentation上閱讀更多經理信息。
雖然通過調整添加字段和使用字段樣式的方式,仍然可以達到與此類似的效果。例如考慮以下代碼:
add(new LabelField("field 1"));
add(new LabelField("field 2"));
這會給我們結果;
field 1 field 2
因爲字段1被吸入然後字段2在其下方。然而,如果我們總是在我們的經理開始時插入字段,例如位置0像這樣:
insert(new LabelField("field 1", FIELD_BOTTOM), 0);
insert(new LabelField("field 2", FIELD_BOTTOM), 0);
我們會得到結果;
field 2 field 1
這是你在你的問題中描述的畫面所期望的結果。
雖然我不確定如何將字段繪製到屏幕底部,但您可以嘗試研究「位置相對底部」樣式,但我確實不確定。
您可能正在使用一個VerticalFieldManager
,並在該文件說:
垂直場經理勾畫出頂部 領域底部在一個 列。
所以,如果你
manager.add(field1);
manager.add(field2);
manager.add(field3);
屏幕上的字段的順序將是公正的。 但是你可以做這樣的事情:
Vector v = new Vector();
v.add(field1);
v.add(field2);
v.add(field3);
for(int i=v.size()-1;i>=0;i--) {
manager.add((Field)v.elementAt(i));
}
排序的。您可以使用Manager#insert(Field,int)方法,並始終在零索引處插入。如果使用VerticalFieldManager執行此操作,它將模擬從管理器向下自動添加字段。
到目前爲止一些答案是使用Manager.insert(Field,int),並繼續插入位置0.這將工作,但插入的運行時間是線性的,已添加到管理者。這意味着該解決方案將具有整體二次運行時間。如果您在10個字段之內添加,則不算什麼大問題,但如果您計劃添加更多,插入開銷將會很大。
如果您可以從上到下進行插入,通過按照Muger的解決方案建議的方式重新排序字段,運行時間將大大提高。
最後,您可以編寫自己的BottomUpVerticalFieldManager,以您想要的方式進行佈局。當你寫自己的經理時,你可以以任何方式佈置字段。在這種情況下,它將是自下而上的。編寫自己的經理似乎令人望而生畏,但在試圖解決佈局問題時,它會給你相當大的自由。
- 1. 把段落的行從下往上而不是從上往下的技巧
- 2. 使WrapPanel從下往上添加項目
- 3. 自頂向下方法vs自下而上方法?
- 4. 結合自頂向下和自下而上的解析
- 5. 自頂向下與自下而上的方法
- 6. ACL組結構:自上而下還是自下而上?
- 7. .slide從底部切換而不是從頂部向下
- 8. 在Angular 2中需要組件,自上而下還是自下而上?
- 9. 從下往上加載Mysql表格
- 10. CSS動畫向下而不是向上
- 11. 讓文字向下而不是向上?
- 12. 如何在jscrollpane中添加組件到面板後從下往上滾動回到頂端
- 13. 從下往上滾動ListView
- 14. 自上而下DP自上而下DP
- 15. 下拉菜單向上而不是向下
- 16. 自頂向下解析是什麼?
- 17. BDD自頂向下方法
- 18. 遞歸自頂向下mergesort
- 19. 自頂向下coldfusion webservice
- 20. 自上而下或buttom向上?
- 21. 如何從底部向上堆疊組件,而不是在定義的網格容器中自頂向下堆疊組件?
- 22. Joomla組件自動添加下劃線
- 23. 將圖改爲自下而上,而不是從左到右
- 24. 是否可以從下往上遍歷文件? [C]
- 25. MDX頂部開始往下數小計
- 26. 將向下/向上/向下圖標添加到tablesorter表
- 27. Gio中的GUI組件而不是Gtk中的GUI組件?
- 28. 對象換下現有對象數組,而不是被添加
- 29. 矩陣流:向右而不是向下?
- 30. JQuery的scrollTop的是向上滾動,而不是向下