Q
重疊之間的導航
0
A
回答
2
是的,你可以從一個覆蓋項目上的MapView轉移到其他但也有,你應該考慮幾件事情。
- 如果你希望你的MapView駕馭根據使用Dpad方向同時按下上/下/左上使用Dpad,那麼你的地圖會去上/下/左方向顯示的地圖,你不會能夠使用Dpad上覆蓋因爲MapView有重點。
- 但是,如果你想覆蓋項目被聚焦,那麼你必須手動定義哪個覆蓋項目應該集中在使用setFocus,nextFocus和getFocus方法的哪個D-Pad方向類。
- 此外,你說你在你的活動中有listview和MapView,爲了讓焦點返回到listview或任何其他MapView外的視圖也必須以編程方式完成,這可能有點棘手。
您可以使用StateListDrawable來定義覆蓋繪製的焦點,按下和默認狀態的不同狀態。
希望這能回答您的查詢。
1
我創建低於樣本活動。大部分代碼來自於此處的MapView教程:http://developer.android.com/resources/tutorials/views/hello-mapview.html
「焦點代碼」位於onKeyDown()方法中。當按下TAB鍵時,焦點會轉移到下一個覆蓋層。按下ENTER後,會顯示一個Toast,但這是您可以顯示內容的地方。
的的setFocus()方法的文檔中被發現的ItemizedOverlay在這裏找到:https://developers.google.com/maps/documentation/android/reference/
希望這個作品。
public class OverlayFocusExampleActivity extends MapActivity {
private HelloItemizedOverlay itemizedoverlay;
private MapView mapView;
private MapController mapController;
private int currentOverlayIndex;
/*
* This entire method comes from the MapView tutorial.
*/
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mapView = (MapView) findViewById(R.id.mapview);
mapView.setBuiltInZoomControls(true);
mapController = mapView.getController();
List<Overlay> mapOverlays = mapView.getOverlays();
// overlay_draw is a selector that specifies a different image for state_focused
Drawable drawable = this.getResources().getDrawable(R.drawable.overlay_draw);
itemizedoverlay = new HelloItemizedOverlay(drawable, this);
GeoPoint point = new GeoPoint(19240000, -99120000);
OverlayItem overlayitem = new OverlayItem(point, "Hola, Mundo!", "I'm in Mexico City!");
itemizedoverlay.addOverlay(overlayitem);
GeoPoint point2 = new GeoPoint(35410000, 139460000);
OverlayItem overlayitem2 = new OverlayItem(point2, "Sekai, konichiwa!", "I'm in Japan!");
itemizedoverlay.addOverlay(overlayitem2);
mapOverlays.add(itemizedoverlay);
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
OverlayItem overlay;
switch (keyCode) {
case KeyEvent.KEYCODE_TAB:
// Retrieve next overlay
currentOverlayIndex = (currentOverlayIndex + 1) % itemizedoverlay.size();
overlay = itemizedoverlay.getOverlayItem(currentOverlayIndex);
itemizedoverlay.setFocus(overlay);
// Since setFocus() doesn't center the map, we do it ourselves
mapController.animateTo(overlay.getPoint());
return true;
case KeyEvent.KEYCODE_DPAD_CENTER:
case KeyEvent.KEYCODE_ENTER:
overlay = itemizedoverlay.getFocus();
if (overlay != null) {
// Perform associated action
// Stub
Toast.makeText(this, overlay.getSnippet(), Toast.LENGTH_SHORT).show();
return true;
}
default:
return false;
}
}
/*
* This entire class comes from the MapView tutorial except getOverlayItem().
*/
private class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
private Context mContext;
public HelloItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
super(boundCenterBottom(defaultMarker));
mContext = context;
}
public void addOverlay(OverlayItem overlay) {
mOverlays.add(overlay);
populate();
}
/*
* Not in MapView tutorial. Added for focusability.
*/
public OverlayItem getOverlayItem(int index) {
return mOverlays.get(index);
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
@Override
protected boolean onTap(int index) {
OverlayItem item = mOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
}
}
相關問題
- 1. 導航重疊
- 2. 重疊導航上的重疊div
- 3. IOS 7導航欄重疊導航欄
- 4. 導航抽屜重疊CollapsingToolbar
- 5. 如何重疊導航欄
- 6. 導航欄重疊信息
- 7. backstretch圖像重疊導航
- 8. 導航之間的空間
- 9. Twitter Bootstrap導航欄摺疊重疊導航欄標題
- 10. 圖片重疊摺疊導航欄
- 11. 重疊的導航欄的css
- 12. UIViewControllers之間的導航IOS
- 13. 視圖之間的導航
- 14. WindowSurface之間的導航
- 15. 導航和內容重疊的問題
- 16. 導航欄的標題視圖重疊
- 17. 導航欄中的重疊圖像
- 18. 水平導航中的重疊Divider
- 19. 導航菜單中的內容重疊?
- 20. ActionBarSherlock重疊的標籤導航和ActionMode
- 21. 導航抽屜重疊過的ActionBar導航選項卡內容
- 22. 在.content divs之間導航
- 23. iphone - 在UITextFields之間導航?
- 24. 在HTML之間導航
- 25. WPF在Windows之間導航
- 26. 在JPanel之間導航?
- 27. Z-Index CSS - 頂部導航重疊垂直導航
- 28. 「li」項目在導航欄中重疊
- 29. CSS問題 - 在導航文本重疊
- 30. 導航圖像互相重疊