自定义对话框,看起来像导航抽屉

时间:2013-12-24 06:14:15

标签: android android-layout android-alertdialog navigation-drawer

直接问题_我需要构建导航抽屉,从具有多个Left to Rightcheck boxes的{​​{1}}导航。当用户点击“过滤器”按钮时,此抽屉将显示。我试过 Navigation Drawer,但它不是我案例的解决方案。我需要如下_ When Click Filters These Filters will be shown

用户检查&点击button(抽屉获取隐藏和搜索所需的内容)。

然后我想(我不确定它会解决我的问题)我们可以通过go做到这一点,然后我尝试构建Customized Dialog having Check boxes which look like Drawer的“自定义对话框”。在演示enter image description here

下面构建
Navigate from Left to Right

所以,最后,是否可以构建一个 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(); } }); _ _ / p>

  
      
  • 如上所示Customized Dialog
  •   
  • Filters高度匹配?
  •   
  • Activity's L->R
  • 导航Navigation Drawer   

还是要做别的事?

我们将非常感谢您的帮助!感谢...

2 个答案:

答案 0 :(得分:0)

为什么不使用相同的导航抽屉并更改其内容并打开抽屉而不是显示对话框。

左侧抽屉只有相对布局,并且有两个不同的布局,一个用于过滤,一个用于对话。

现在,当您单击以显示对话框设置对话框布局时,可以更新它的内容。

on onCreate of activity:

        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>

答案 1 :(得分:0)

是的,这是可能的,但是您可以在Manifest文件中使用Dialog主题进行活动,而不是创建对话框, 希望这有效。 在活动中,你可以做任何你想做的事。