بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

کلیک نشدن آیتم های اسلایدینگ منو(لطفا کمک کنید.هنوز حل نشده)

مدیریت گفتگو
bahman2000 11 سال پیش
آخرین تغییر: 10 سال پیش

سلام دوستان.به کمک فیلم آموزشی اسلایدینگ منو آقای کاشی زاده تونستم اسلایدینگ منو رو پیاده سازی کنم.اما تنها مشکلی که وجود داره وقتی بر روی یکی از آیتم های اسلایدینگ منو کلیک شدن رو تعریف میکنم چیزی هایی که در onclick نوشتم اجرا نمیشن و فقط اسلایدینگ منو بسته میشه!

نظرات

bahman2000 11 سال پیش
دوستان لطفا کمک کنید.

پاسخ‌ها 3

m-developer 11 سال پیش

خیلی راحت مثل هر دکمه دیگه ای من تو برنامه ام ایجادش کردم

همون اسلاید منوی کاشی زاده هست براش فونت هم ست کردم

 //Start Sliding Menu****************************************************************
        //
        LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View actionBarView = inflater.inflate(R.layout.action_bar, null);

        ActionBar actionBar = getSupportActionBar();
        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
        actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
        actionBar.setCustomView(actionBarView, new ActionBar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));

        final DrawerLayout drawerlayout = (DrawerLayout) findViewById(R.id.drawerlayout);
//******** kilidi ke ban on slide menu ro baz va baste mikonam
        Button btnMenu = (Button) actionBarView.findViewById(R.id.btnMenu);
        btnMenu.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                if (drawerlayout.isDrawerOpen(Gravity.LEFT)) {
                    drawerlayout.closeDrawer(Gravity.LEFT);
                } else {
                    drawerlayout.openDrawer(Gravity.LEFT);
                }
            }
        });
//******** baraye mohtaviate slide menu font set kardam
        tf = Typeface.createFromAsset(getAssets(), "yekan.ttf");
        TextView txt1 = (TextView) findViewById(R.id.txtmenu1);
        TextView txt2 = (TextView) findViewById(R.id.txtmenu2);
        TextView txt3 = (TextView) findViewById(R.id.txtmenu3);
        TextView txt4 = (TextView) findViewById(R.id.txtmenu4);
        TextView txt_actionbar = (TextView) findViewById(R.id.txt_actionbar);
        txt1.setTypeface(tf);
        txt2.setTypeface(tf);
        txt3.setTypeface(tf);
        txt4.setTypeface(tf);
        txt_actionbar.setTypeface(tf, Typeface.BOLD);
//********kilid haii ke dakhele slid menu estefade karadm findViewById(R.id.lay1).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerlayout.closeDrawer(Gravity.LEFT); Intent go_next = new Intent(G.context, LearnMenuActivity.class); StartUpActivity.this.startActivity(go_next); } }); findViewById(R.id.lay2).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerlayout.closeDrawer(Gravity.LEFT); Intent go_next = new Intent(G.context, SamplesMenuActivity.class); StartUpActivity.this.startActivity(go_next); } }); findViewById(R.id.lay3).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerlayout.closeDrawer(Gravity.LEFT); Intent go_next = new Intent(G.context, NotesActivity.class); StartUpActivity.this.startActivity(go_next); } }); findViewById(R.id.lay4).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerlayout.closeDrawer(Gravity.LEFT); Intent go_next = new Intent(G.context, AboutActivity.class); StartUpActivity.this.startActivity(go_next); } }); findViewById(R.id.lay5).setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { drawerlayout.closeDrawer(Gravity.LEFT); Intent go_next = new Intent(G.context, FavoriteActivity.class); StartUpActivity.this.startActivity(go_next); } }); // //End Sliding Menu****************************************************************

نظرات

tiam 10 سال پیش
سلام دقیقا کار شما رو انجام دادم ولی با کلیک بر روی ایتم های منو هیچ عکس العملی انجام نمیده چرا؟؟؟؟
amin_313 10 سال پیش
آقا خدا خیرت بده ، با کد شما درست شد
bahman2000 11 سال پیش

نمیدونم چرا اینطوری شده.هر کاری می کنم اصلا آیتم های اسلایدینگ منو کلیک نمی شوند.کاملا گیج شدم! اصلا انگار هیچ onclick ای برای آیتم های اسلایدینگ منو ننوشتم!!!

        // کدهای اکشن بار
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = inflater.inflate(R.layout.actionbar, null); ActionBar actionBar = getSupportActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD); actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); actionBar.setCustomView(view, new ActionBar.LayoutParams (ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT)); getSupportActionBar().setDisplayShowTitleEnabled(false); getSupportActionBar().setDisplayShowHomeEnabled(false); ///////////////////////////////////////////////// کدهای اسلایدینگ منو final DrawerLayout drawer_layout = (DrawerLayout) findViewById(R.id.drawer_layout); ImageView imgmenu = (ImageView) view.findViewById(R.id.imgmenu); imgmenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { if (drawer_layout.isDrawerOpen(Gravity.RIGHT)) drawer_layout.closeDrawer(Gravity.RIGHT); else drawer_layout.openDrawer(Gravity.RIGHT); } }); ////////////////////////////////////////////////////////////////// کلیک شدن بر روی اولین آیتم اسلابدینگ منو LinearLayout lay1 = (LinearLayout) view.findViewById(R.id.lay1); lay1.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(Activity1.this, Activity2.class);
Activity1.this.startActivity(intent); } });

نظرات

m-developer 11 سال پیش
شما اکتیوتی هاتو از اکشن باز extends کردی؟؟
bahman2000 11 سال پیش
بله این کار رو انجام دادم.کلا 10 تا اکتیویتی دارم که می خوام در همشون از اسلایدینگ منو استفاده کنم.یک لایه مربوط به اسلادینگ منو دارم و ده تا لایه ی روت.root1 , roo2 , ...., root10
bahman2000 11 سال پیش
دوستان لطفا کمک کنید.این مشکل حسابی فکر من رو مشغول کرده!!!
tiam 10 سال پیش
سلام آفا بهمن شما تونستید رو حل کنید
Criss 10 سال پیش

فایل XML شما همون root تعین میکنه که کلیک ها روی کدوم لایه انجام بشه

 <?xml version="1.0" encoding="utf-8"?>
<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" >

<include layout="@layout/main" />

<include layout="@layout/sliding_menu" />

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

لایه ایی که پایین تر باشه کلیک ها میگیره اگر به اشتباه Main رو پایین تر قرار داده باشید روی NavigationDrawer شما کلیک نمیشه

نکته دوم اینکه بعد از این هم NavigationDrawer کلیک هایی که روش میشه رو با اینکه قبول میکنه اما اگر روی قسمتی کلیک بشه که هیچ View نباشه و OnclickListener اونجا نباشه اون کلیک از NavigationDrawerرد میشه و به لایه زیری کلیک میشه

برای حل نکته دوم میتونید کل لایه NavigationDrawer رو بگیرید وOnclickListener خالی براش تعریف کنید

نظرات

afr_msb 10 سال پیش
اگر هم روی main و هم navigation بخواهیم کلیم شود چه ؟ الان همه اپها اینطوریه
Criss 10 سال پیش
منظورتون رو متوجه نمیشم ! میخواید با کلیک شدن روی Main بتونید navigation رو باز و بسته کنید ؟ یا بصورتی دیگه ؟ یک نمونه اپ مثال بزنید
آریا 10 سال پیش
منظورتون دقیق تر بگین تا دوستان بتونن کمکتون کنن

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .