0

Прямо к проблеме_ Мне нужно построить навигационный ящик, который перемещается от Left to Right, имея несколько check boxes и button. Этот ящик покажет, когда пользователь нажимает кнопку «Фильтры». Я пробовал Navigation Drawer, но это не решение для моего дела. Мне нужно просто, как below_ пользователь When Click FiltersThese Filters will be shownПользовательский диалог, похожий на навигационный ящик

Ones проверили & нажмите go (Drawer получить скрыть & поиск необходимое).

Тогда после того, как я думаю (я не уверен, что это решит мою проблему или нет), мы можем сделать это Customized Dialog having Check boxes which look like Drawer, а затем я попытался построить «Индивидуальный диалог», который Navigate from Left to Right. Построить ниже демо enter image description here

filters.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      final Dialog callAlert = new Dialog(LandingActivity.this,R.style.CutomDialog); 
      //callAlert.requestWindowFeature(Window.FEATURE_NO_TITLE); 
      WindowManager.LayoutParams wmlp = callAlert.getWindow().getAttributes(); 
      wmlp.gravity = Gravity.CENTER; 
      callAlert.setContentView(R.layout.call); 
      ImageView close = (ImageView)callAlert.findViewById(R.id.close); 
      close.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        callAlert.dismiss();       
       } 
      }); 

      ImageView queryno = (ImageView)callAlert.findViewById(R.id.queryno); 
      queryno.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:+XXXXXXX")); 
        startActivity(intent); 
       } 
      }); 
      callAlert.show(); 
     } 
    }); 

Итак, наконец, можно ли построить Customized Dialog that_

  • будет выглядеть выше Filters?
  • , что соответствует Activity's высоте?
  • , который перемещается от L->R как Navigation Drawer?

Или нужно сделать что-то еще?

Ваша помощь будет оценена! Спасибо ...

+0

Не могли бы вы назвать имя приложения, на которое вы ссылаетесь? – Husyn

+0

На самом деле, я не обращаюсь ни к одному из приложений, которые имеют такую ​​функциональность. Если вы найдете такое приложение, поделитесь им! –

ответ

0

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

Просто иметь относительный макет для левого выдвижного ящика и иметь два разных макета в нем один для фильтра и один для диалога.

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

В OnCreate деятельности:

 dialog=(RelativeLayout) findViewById(R.id.dialog); 
     filter=(ListView) findViewById(R.id.list_slidermenu); 
     ImageView close = (ImageView)findViewById(R.id.close); 
     close.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       drawer.close(Gravity.start); 
       dialog.setVisibility(View.INVISIBLE); 
       filter.setVisibility(View.VISIBLE);       
      } 
     }); 

     ImageView queryno = (ImageView)findViewById(R.id.queryno); 
     queryno.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       Intent intent = new Intent(Intent.ACTION_CALL,Uri.parse("tel:+XXXXXXX")); 
       startActivity(intent); 
      } 
     }); 

И OnClick

filters.setOnClickListener(new OnClickListener() { 

    @Override 
    public void onClick(View v) { 

       dialog.setVisibility(View.VISIBLE); 
       filter.setVisibility(View.INVISIBLE); 
       drawer.open(Gravity.start); 
    } 
}); 

XML

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <!-- Framelayout to display Fragments --> 
    <FrameLayout 
     android:id="@+id/frame_container" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <!-- Listview to display slider menu --> 
    <RelativeLayout android:layout_width="240dp" 
     android:layout_height="match_parent" android:layout_gravity="start"> 

    <ListView 
     android:id="@+id/list_slidermenu" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:choiceMode="singleChoice" 
     android:divider="@color/list_divider" 
     android:dividerHeight="1dp"  
     android:listSelector="@drawable/list_selector" 
     android:background="@color/list_background"/> 
    <RelativeLayout android:layout_width="match_parent" 
     android:layout_height="match_parent" android:visibility="invisible" android:id="@+id/dialog"> 
     //--- PUT YOUR DIALOG LAYOUT HERE 
    </RelativeLayout> 
</android.support.v4.widget.DrawerLayout> 
+0

Можете ли вы поделиться ссылкой? –

+0

Опубликуйте макет ящика и расположение R.layout.call –

+0

Пожалуйста, обратитесь к [This] (http://www.androidhive.info/2013/11/android-sliding-menu-using-navigation-drawer/) для макета ящика. –

0

Да, это возможно, но вместо того, чтобы создать диалоговое окно, вы можете иметь свою деятельность с Диалог темы в файле манифеста, надеюсь, что это сработает. и в действии вы можете делать все, что захотите.

Смежные вопросы