Turkcell | Geleceği Yazanlar

Soru & Cevap

Sliding Menu Custom

26.01.2015 - 13:45

Merhabalar,

Aşağıdaki resim gibi bir sliding menu yu nasıl yapabilirim ? biliyorum bir kez daha sormuştum ama <android.support.v4.widget.DrawerLayout> kullanarak oluşturmak istediğimde istediğim menuye yakın bir yapı çıkardım fakat listview de son elemen kayboldu en sonuna footerview ile resimdeki gibi iki butonu eklediğim için bir de kod da position 0 ise en üst kısmı oluşturdum biraz hile yapmış oldum o yüzden yardımcı olabilir misiniz bu yapıyı nasıl oluşturacağım ?? 

[code]

public View getView(int position, View convertView, ViewGroup parent) {
        // TODO Auto-generated method stub

        DrawerItemHolder drawerHolder;
        View view = convertView;
        Button sign_in;

        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);

        if(position==0)
        {
            view = inflater.inflate(R.layout.headerlayout,null);

        }
        else
        {
            position = position - 1;
            inflater = ((Activity) context).getLayoutInflater();
            drawerHolder = new DrawerItemHolder();

            view = inflater.inflate(layoutResID, parent, false);
            drawerHolder.ItemName = (TextView) view
                    .findViewById(R.id.drawer_itemName);
            //drawerHolder.icon = (ImageView) view.findViewById(R.id.drawer_icon);

            view.setTag(drawerHolder);

            drawerHolder = (DrawerItemHolder) view.getTag();

            DrawerItem dItem = (DrawerItem) this.drawerItemList.get(position);

            //drawerHolder.icon.setImageDrawable(view.getResources().getDrawable(dItem.getImgResID()));
            drawerHolder.ItemName.setText(dItem.getItemName());

        }

 

        return view;
    }

[/code]

 

2963 Görüntülenme

4 Cevap

Alper Gökhan Beyler
29.01.2015 - 11:10

merhabalar sıkıntıyı çözdüm custom sliding menu yaparken listview dışında yaratmak istediğiniz kısımları arkadaşında yukarda dediği gibi bir layout oluşturup içine istediğiniz gibi oluşturacağız daha sonra drawer layout içine include edeceğiz ve dikkat etmemiz gereken nokta    android:layout_gravity="start" dememiz gerekiyor main xml de oluşturduğumuz layout un soldan bir şekilde gelebilmesi için. Bunu yaptıktan sonra çalıştırdığımızda uygulama hata verip kapanıyor bunu çözmek içinde :

mDrawerLayout.closeDrawer(mDrawerList);   bunun yerine alttaki methodu yazmanız gerekiyor kapatma işleminde oluşturduğunuz layout u kapat komutu vermemiz gerektiği için
mDrawerLayout.closeDrawer(mDrawerView);

(not :  mDrawerView main.xml de oluşturduğumuz layout )

bu şekilde sorun çözülmüş oluyor custom sliding menu de istediğimiz gibi şekillendirebiliyoruz. Ben sıkıntı yaşadım sizde karşılaşmayın daha belirtmek istedim kolay gelsin.

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Muhammed ÇOBANOĞLU
29.01.2015 - 14:47
Problemi çözdüyseniz soruyu kapatabilirsiniz. İyi çalışmalar.
Alper Gökhan Beyler
28.01.2015 - 23:32

Aşağıdaki kod da LinearLayout oluşturup içine içine Listview ve diğer bileşenleri koymaya çalıştığımda zaten program çöküyor DrawerLayout izin vermiyor 

[code]

<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
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

   

 

             <ListView
                 android:id="@+id/left_drawer"
                 android:layout_width="fill_parent"
                 android:layout_height="fill_parent"
                 android:layout_gravity="start"
                 android:choiceMode="singleChoice"
                 android:divider="@android:color/transparent"
                 android:dividerHeight="10dp"
                 android:background="#DCDCDC"/>

 


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

 

[/code]

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Alper Gökhan Beyler
27.01.2015 - 15:17

android.support.v4.widget.DrawerLayout kullandığım zaman içinde listview elemanlarını yutabiliyor benim istediğim her durumda alt taraf ve üst taraf sabit boyutta kalsın ortasındaki listview ise android cihazlara göre değişiklik göstersin çünkü bu yapının içinde scrollview var küçük telefonda denediğim zamanda listview elemanları kayboluyor büyük telefonda denediğim zaman elemanlar geri geliyor bu durumu nasıl çözebilirim ? tekrardan sıfırdan sliding menu mu  yaratmak gerekiyor ? yaptığım uygulamayı binleree kişi kullanacak ve her boyuttaki telefonda stable olarak çalışan bir sliding menu yapısı oluşturmak gerekiyor

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Muhammed ÇOBANOĞLU
27.01.2015 - 15:30
"LinearLayout" oluşturup içindeki view'lere(Button, TextView, ListView) "weight" verdin mi?
Alper Gökhan Beyler
27.01.2015 - 16:36
evet verdim fakat istediğim gibi olmadı küçük cihazlarda değişiyor
Muhammed ÇOBANOĞLU
27.01.2015 - 10:11

<android.support.v4.widget.DrawerLayout> içerisine direkt olarak "ListView" ekleme. Oraya bir "LinearLayout" ekle ("include" özelliğini kullanarak oluşturduğun layout'u "main.xml" içerisinde gösterebilirsin). Oluşturduğun layout içerisinde üst ve alt kısımlara eklemek istediklerini(Button, TextView gibi) ekledikten sonra ortaya da bir tane "ListView" ekleyebilirsin. Bu şekilde problemin çözülmüş olur. ListView'i Fragment içerisinde kullanmak istersen(Navigation Drawer olayını eğer sadece "MainActivity" içerisinde oluşturduysan buna gerek yok. Side menu için farklı bir "Fragment" oluşturduysan bunu dikkate alabilirsin.) başına "getActivity()" ekleyebilirsin. 

Sitede yorum yapabilmek için giriş yapın ya da üye olun.

Alper Gökhan Beyler
27.01.2015 - 10:36
teşekkürler deneyeceğim söylediklerinizi

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.