Как установить кнопку дескриптора в содержимом слайдера в Android?

Я работаю с Android. В своем приложении я использовал библиотеку слайдеров.

Теперь я хочу добавить кнопку для управления активностью слайда, чтобы я мог прокручивать содержимое вместе с кнопкой, чтобы открывать и закрывать, как на картинке. После закрытия меню слайдов перед действием появится кнопка.

Я не знаю, возможно это или нет.

Пожалуйста, помогите мне, если вы знакомы с этой библиотекой, заранее спасибо :)

введите здесь описание изображения

введите здесь описание изображения

Я использовал следующий код для доступа к содержимому слайдера

       SlidingMenu menu = new SlidingMenu(this);
    menu.setMode(SlidingMenu.LEFT);
    menu.setApp_id("ads");
    menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    menu.setShadowWidthRes(R.dimen.shadow_width);
    menu.setShadowDrawable(R.drawable.shadow);
    menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    menu.setFadeDegree(0.35f);
    menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
    menu.setSecondaryMenu(R.layout.slide);

person Maxwell    schedule 11.04.2014    source источник
comment
Пожалуйста, опубликуйте свой код.   -  person The Heist    schedule 11.04.2014
comment
@T-Rush посмотри мою новую редакцию   -  person Maxwell    schedule 11.04.2014
comment
Можете ли вы опубликовать slide.xml, пожалуйста?   -  person fllo    schedule 11.04.2014
comment
slide.xml - это просто файл xml, он не содержит слайдер.   -  person Maxwell    schedule 11.04.2014
comment
и menu.setSecondaryMenu, и menu.setMenu одинаковы, верно??   -  person Maxwell    schedule 11.04.2014
comment
Это не текущая проблема. Как я могу добавить кнопку ???   -  person Maxwell    schedule 11.04.2014
comment
MAxwell, попробуйте это... stackoverflow.com/questions/23271791/   -  person Rohit Goswami    schedule 05.05.2014
comment
Пожалуйста, внимательно прочитайте вопрос перед ответом @user3564321   -  person Maxwell    schedule 05.05.2014


Ответы (3)


Если вашей главной задачей является добавление изображения в Layout, вы можете сделать что-то подобное.

Шаг (1) Используйте RelativeLayout в качестве родителя.

Шаг (2) Для просмотра изображения используйте следующее.

<ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/content_frame"
                android:layout_alignParentTop="@+id/content_frame"
                android:layout_centerInParent="true"
                android:src="@drawable/slider" />

Шаг (3) Теперь получите идентификатор этого представления изображения в своем классе Java и поместите в него setOnClickListener. Теперь при щелчке просто поместите определенный код, чтобы закрыть и открыть. Убедитесь, что ящик открыт, затем закройте ящик, а если ящик закрыт, то откройте ящик.

В противном случае я предлагаю вам использовать ActionBar NavigationDrawer для того же. Это очень удобно в использовании.

Я выполнил то же самое, используя Navigation Drawer в одном из моих проектов. Он работает как шарм.

Надеюсь, поможет..

ИЗМЕНИТЬ

Если вы используете ActionBar NavigationDrawer или что-то еще, ваш предпочтительный макет должен выглядеть так.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" >

            <FrameLayout
                android:id="@+id/content_frame"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:fitsSystemWindows="true" >

                <fragment
                    android:id="@+id/map"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    class="com.google.android.gms.maps.SupportMapFragment" />

            </FrameLayout>

            <ImageView
                android:id="@+id/iv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignLeft="@+id/content_frame"
                android:layout_alignParentTop="@+id/content_frame"
                android:layout_centerInParent="true"
                android:src="@drawable/ic_launcher" />



        </RelativeLayout>




        <ListView
            android:id="@+id/listview_drawer_two"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:layout_gravity="right"
            android:background="@color/taxi_list_light"
            android:choiceMode="singleChoice"
            android:divider="@android:color/transparent"
            android:dividerHeight="2dp" />

    </android.support.v4.widget.DrawerLayout>

</RelativeLayout>

Просто скопируйте и вставьте этот макет в свежий файл XML... и посмотрите, как он выглядит...

Кроме того, я предлагаю вам ознакомиться с этим руководством. http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/

Надеюсь, поможет!

person AndroidHacker    schedule 01.05.2014
comment
Я использовал навигационный ящик. Но как я могу поместить кнопку навигации в свое пользовательское положение. Есть идеи?? - person Maxwell; 01.05.2014
comment
Как я уже упоминал, вам нужно использовать RelativeLayout и поместить свой IV, как я уже упоминал. Пожалуйста, поместите часть макета. - person AndroidHacker; 01.05.2014
comment
проверьте библиотеку, которую я использовал (ссылка выше), и скажите мне, есть ли у вас какие-либо идеи о... потому что мне нужно вызвать это из проекта библиотеки. - person Maxwell; 01.05.2014
comment
Я имею в виду, что я использовал содержимое слайда сзади, используя библиотеку. Но мне нужна кнопка перед экраном как часть заднего вида, и я могу сдвинуть кнопку, чтобы просмотреть содержимое слайда. Это должно вызываться из библиотеки, поэтому мне нужно в код кнопки как контент из библиотеки - person Maxwell; 01.05.2014

Попробуйте эту ссылку, она вам поможет: слева направо Создание выдвижных ящиков в Android

<?xml version="1.0" encoding="utf-8"?>

        <LinearLayout
         xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="horizontal"
         android:gravity="center_vertical"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">

         <balaji.slidingdrawer_lr.Transparent
             android:id="@+id/popup_window"
             android:orientation="vertical"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:gravity="left"
             android:padding="30px">

             <TextView
          android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
          android:textColor="#000000"
              android:textSize="20dp"
              android:paddingTop="20dp"
              android:paddingBottom="20dp"
              android:text="Left to Right Sliding" />

             <CheckBox 
              android:id="@+id/checkBox1"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="Jelly Bean" />

             <CheckBox 
              android:id="@+id/checkBox2"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="Ice Cream Sandwich" />

             <CheckBox 
              android:id="@+id/checkBox3"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content" 
          android:textSize="17dp"
          android:text="HoneyComb" />

         </balaji.slidingdrawer_lr.Transparent>

         <Button 
             android:id="@+id/handle"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:text="Handle"/>

        </LinearLayout>

Это макет для выдвижного ящика слева направо. Вам также понадобится balaji.slidingdrawer_lr.Transparent . Вот код для него:

package balaji.slidingdrawer_lr;

    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Paint;
    import android.graphics.RectF;
    import android.graphics.Paint.Style;
    import android.util.AttributeSet;
    import android.widget.LinearLayout;

    public class Transparent extends LinearLayout 
    {
     private Paint innerPaint, borderPaint ;

     public Transparent(Context context, AttributeSet as) {
      super(context, as);
      init();
     }

     public Transparent(Context context) {
      super(context);
      init();
     }

     private void init() {
      innerPaint = new Paint();
      innerPaint.setARGB(225, 75, 75, 255); 
      innerPaint.setAntiAlias(true);
      borderPaint = new Paint();
      borderPaint.setARGB(255, 255, 255, 255);
      borderPaint.setAntiAlias(true);
      borderPaint.setStyle(Style.STROKE);
      borderPaint.setStrokeWidth(20);
     }

     public void setInnerPaint(Paint innerPaint) {
      this.innerPaint = innerPaint;
     }

     public void setBorderPaint(Paint borderPaint) {
      this.borderPaint = borderPaint;
     }

     @Override
     protected void dispatchDraw(Canvas canvas) {
      RectF drawRect = new RectF();
      drawRect.set(0,0, getMeasuredWidth(), getMeasuredHeight());
      canvas.drawRoundRect(drawRect, 5, 5, innerPaint);
      canvas.drawRoundRect(drawRect, 5, 5, borderPaint);
      super.dispatchDraw(canvas);
            }
    }

Вам нужны эти два файла для ваших нужд. Надеюсь, что это поможет вам.

person Imran Betara    schedule 30.04.2014

Установив расширяемую строку в сообщении об ошибке или расширив EditText и перезаписав свой собственный механизм рисования ошибок.

person Simpalm    schedule 14.05.2014