Есть ли способ сделать выдвижной ящик слайдом сверху вниз?Android SlidingDrawer сверху?
ответ
По умолчанию SlidingDrawer
класс не допускает этого. Вы можете использовать Panel
класс здесь, чтобы получить что-то очень похожее, хотя:
http://code.google.com/p/android-misc-widgets/
Получали ли вы там панели? Мне очень сложно интегрировать эту панель, которая, кажется, очень крутая. Моя проблема здесь, если кто-то может ее просмотреть http://code.google.com/p/android-misc-widgets/issues/detail?id=9 Ошибка говорит: «Бинарная строка XML-файла # 15: атрибут контента требуется и должен ссылаться на действительного ребенка ». – OneWorld
Мне пришлось обернуть виджет панели в макет фрейма, чтобы заставить его работать – OneWorld
У топ-капельницы было нежелательное поведение: содержимое внизу было перемещено на дно. Я установил его так:
Я должен был сделать то же самое для одного из моих проектов, и я закончил писать свой собственный виджет для этого. Я назвал его SlidingTray теперь входит в мой открытый исходный код Aniqroid библиотека.
http://aniqroid.sileria.com/doc/api/ (Посмотрите для загрузки в нижней части или использовать проект Google Code, чтобы увидеть больше вариантов загрузки: http://code.google.com/p/aniqroid/downloads/list)
Документация класса здесь: http://aniqroid.sileria.com/doc/api/com/sileria/android/view/SlidingTray.html
Я пробовал это, но когда я реализую его с помощью примера xml, я получаю «исключение nullpointer» в 'com.sileria.android.Resource.getIdentifier'. Хотелось бы воспользоваться этим. – Peterdk
Упс, похоже, я забыл 'Kit.init()' ... Отлично работает сейчас! – Peterdk
Также, если вы копируете/вставляете XML-пример из документации, это 'com.sileria.android.view.SlidingTray', а не' com.sileria.android.SlidingTray' – Fr4nz
Я нашел простой способ сделать это , Все, что вам нужно сделать, это установить поворот на 180º для скользящего устройства, содержимого и рукоятки. Это проще понять на примере, так что посмотрите, что я сделал:
Во-первых, я покажу вам мой старый SlidingDrawer, снизу вверх.
<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slidingDrawer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:handle="@+id/handle"
android:content="@+id/content">
<ImageView android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
<ImageView android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:src="@drawable/ic_launcher" />
</SlidingDrawer>
Теперь посмотрим на изменения, которые я сделал, установив вращение 180º
<SlidingDrawer xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/slidingDrawer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
android:handle="@+id/handle"
android:content="@+id/content"
android:rotation="180">
<LinearLayout android:id="@+id/handle"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher"
android:rotation="180" />
</LinearLayout>
<ImageView android:id="@+id/content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="#FF0000"
android:src="@drawable/ic_launcher"
android:rotation="180" />
</SlidingDrawer>
Обратите внимание, что я создал LinearLayout, чтобы установить в качестве ручки, и не изменить это вращение, но я изменил вращение его ребенка. Это было для предотвращения небольшой проблемы, которую я имел, но все работает нормально, и это просто.
Я был очень недоволен решениями, предоставляемых здесь:
Panel
класса от http://code.google.com/p/android-misc-widgets/ был действительно неинтуитивным использовать, а также были ошибка и визуальные глюки (непригодная для продуктивного использования) и не документов на всехSlidingTray
класс от http://aniqroid.sileria.com/doc/api/ был вложен в Lib нуждающихся слишком много зависимостей и для меня, я не получил его на работу на всех- с использованием
android:rotation="180"
требует уровня API 11, и моя цель 10.
(не в обиду соответствующих разработчиков, пытаясь быть объективным здесь)
Так что мое решение было извлечь SlidingTray из этой библиотеки http://aniqroid.sileria.com/doc/api/ (Ахмед Шакил) и реструктурировать это немного, так как у нее есть некоторые причуды необходимо было использовать в библиотеке Ахмеда. SlidingTray
основан на Androids собственный SlidingDrawer
, поэтому я думаю, он стабилен. Мое изменение состоит из 1 класса, который я назвал MultipleOrientationSlidingDrawer
и , вы должны добавить declare-styleables в свой attrs.xml. Кроме того, он имеет примерно такое же использование, как SlidingDrawer с дополнительным атрибутом «ориентация».
Проверьте это: MultipleOrientationSlidingDrawer (source & example) @ gist
Вот пример использования (также предусмотрен в сути)
<your.app.MultipleOrientationSlidingDrawer
xmlns:custom="http://schemas.android.com/apk/res-auto/your.app"
android:layout_width="match_parent"
android:layout_height="match_parent"
custom:handle="@+id/handle_c"
custom:content="@+id/content_c"
custom:orientation="top">
<RelativeLayout
android:id="@id/handle_c"
android:layout_width="match_parent"
android:layout_height="30dp"
android:background="#333333">
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="Handle Text"
android:gravity="left|center_vertical"/>
</RelativeLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@id/content_c"
android:background="#555555">
<ListView
android:id="@+id/listview_credits"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
</your.app.MultipleOrientationSlidingDrawer>
Отказ от ответственности: Все кредиты идут на соответствующий разработчик. Я не тестировал это решение экстенсивно, он отлично работает с TOP и BOTTOM, установленным в XML. Я не пытался использовать его программно.
Это хорошо, но вы видели проблемы с анимацией? Вы нашли решение для мигания просмотра во время его перемещения? – Vetalll
У меня были мигающие анимации с http://code.google.com/p/android-misc-widgets/, но не с этим apporach (до сих пор) – for3st
Возможно ли сделать 'FrameLayout'' content_c' не занимать все свободное пространство, потому что я вижу, что он все толкал, даже если я устанавливаю 'android: layout_height =" wrap_content "' – Erik
- 1. Android, SlidingDrawer
- 2. SlidingDrawer и ImageView Android
- 3. Android SlidingDrawer how-to
- 4. Android: SlidingDrawer & неправильный дисплей
- 5. Изображение обработчика Android SlidingDrawer
- 6. Android SlidingDrawer в Eclipse IDE
- 7. Состояние Android SlidingDrawer по умолчанию?
- 8. Android: SlidingDrawer исчезает под SurfaceView
- 9. android: SlidingDrawer, RelativeLayout и GoogleMap
- 10. Slidingdrawer Android с параметром fill_parent
- 11. SlidingDrawer везде
- 12. SlidingDrawer устарел
- 13. SlidingDrawer наверх
- 14. lazy SlidingDrawer
- 15. SlidingDrawer source
- 16. Кнопки в SlidingDrawer
- 17. Изменить положение ручки SlidingDrawer
- 18. ANDROID: Можно загрузить Activity в режим SlidingDrawer?
- 19. Макет как ручка SlidingDrawer на Android
- 20. SlidingDrawer Android :: поиск решения для 3 состояний
- 21. Правильный способ реализации SlidingDrawer в Android
- 22. Как сделать Android SlidingDrawer слайдом слева?
- 23. Как изменить ориентацию Android SlidingDrawer по коду?
- 24. Android: MenuDrawer/SlidingMenu/SlidingDrawer как системный оверлей
- 25. Android: SlidingDrawer с bottomOffset и содержимое видно
- 26. Позиция ручки SlidingDrawer?
- 27. Ручка SlidingDrawer не видна
- 28. SlidingDrawer rotation using onConfigurationChanged
- 29. Slidingdrawer не закрывается
- 30. SlidingDrawer over GoogleMap
Вы можете посмотреть https://github.com/Ali-Rezaei/SlidingDrawer, что позволяет вам скользить с любой стороны. – Ali