Ответ 1
Я не думаю, что вы можете, кроме, возможно, захватив исходный код SlidingDrawer
, внеся в него изменения и используя вашу измененную версию. Аналогично вы не можете сделать SlidingDrawer
, который спускается сверху.
Я использую slidingDrawer
в моем приложении, который имеет свой обработчик, расположенный внизу, когда он находится в портретном режиме. Когда пользователь переключается в альбомный режим (широкоэкранный), я бы хотел, чтобы обработчик находился слева. Когда я изменяю ориентацию от вертикали к горизонтали, обработчик помещается справа.
Я определил свой макет XML следующим образом:
<SlidingDrawer
android:id="@+id/l_drawer"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:handle="@+id/l_handle"
android:content="@+id/l_content"
android:orientation="horizontal"
android:layout_gravity="left"
>
У кого-нибудь есть идея, как сделать это слайд слева направо?
Я не думаю, что вы можете, кроме, возможно, захватив исходный код SlidingDrawer
, внеся в него изменения и используя вашу измененную версию. Аналогично вы не можете сделать SlidingDrawer
, который спускается сверху.
Я нашел простой способ сделать это. Все, что вам нужно сделать, это установить поворот на 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="horizontal"
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>
Теперь посмотрим, что я изменил, чтобы он сдвинулся с левой стороны.
<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="horizontal"
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 для установки в качестве дескриптора и не менял его вращение, но я изменил его рождение. Это было для предотвращения небольшой проблемы, которую я имел, но все работает нормально, и это просто.
Я переписал класс и сделал это частью моей библиотеки с открытым исходным кодом. Мне потребовалось почти неделю, чтобы все исправить. Посмотрите мою SlidingTray в Aniqroid библиотеку с открытым исходным кодом для Android.
http://aniqroid.sileria.com/doc/api
Найдите ссылку для загрузки и документацию для класса SlidingTray в приведенной выше ссылке.
(Раскрытие информации: я являюсь сторонником проекта.)
Вы можете использовать код, отправленный в этом ответе: Android SlidingDrawer сверху?
Предоставляемые решения, устанавливающие ориентацию Slidingdrawer в xml, также просто требуют всего 1 класс и некоторые дополнения в attrs.xml и стабильны, поскольку он получен из Androids SlidingDrawer из SDK. Я также обсуждаю, почему я не выбрал другие популярные библиотеки/решения, найденные в Интернете /SO.
Быстрая ссылка на суть: MultipleOrientationSlidingDrawer (источник и пример) @gist