Реализация скользящего меню J. Feinstein

Я пытаюсь разработать приложение, используя библиотеку SlidingMenu Джереми Файнштейна, которую я нашел очень интересной. Я все настроил и создал пример проекта только для того, чтобы проверить, могу ли я реализовать скользящее меню, но, к сожалению, я не смог увидеть скользящее меню в своем приложении.

это то, что я сделал,

  • загрузил SlidinMenu из ЗДЕСЬ и импортировал в eclipse как существующий проект Android. Изменен уровень Google API. (Теперь на нем больше нет красной метки.)

  • Создал новый проект и добавил в него библиотеку скользящего меню.

  • Как объяснил jfeinstein, я добавил следующий код в свой файл MainActivity.java.

    public class MainActivity extends Activity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        setTitle("Title !");
    
        setContentView(R.layout.activity_main);
    
        SlidingMenu menu = new SlidingMenu(this);
        menu.setMode(SlidingMenu.LEFT);
        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.setMenu(R.layout.menu);
    
    }
    

    }

и мой activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >


<com.slidingmenu.lib.SlidingMenu
    xmlns:sliding="http://schemas.android.com/apk/res-auto"
    android:id="@+id/slidingmenulayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    sliding:viewAbove="@layout/testing"
    sliding:viewBehind="@layout/testing_two"
    sliding:touchModeAbove="margin"
    sliding:behindWidth="@dimen/shadow_width"
    sliding:behindScrollScale="0.5"
    sliding:shadowDrawable="@drawable/shadow"
    sliding:shadowWidth="@dimen/shadow_width"
    sliding:fadeEnabled="true"
    sliding:selectorEnabled="true"/>

</RelativeLayout>

и menu_frame.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/menu_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

testing.xml

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

<TextView 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Test"/>
</LinearLayout>

и я скопировал его menu.xml, shadow.xml, dimen.xml в свой проект.

И когда я запустил его, я не увидел ничего, кроме этих ошибок,

01-31 22:18:13.027: E/AndroidRuntime(759): FATAL EXCEPTION: main
01-31 22:18:13.027: E/AndroidRuntime(759): java.lang.RuntimeException: Unable to start activity ComponentInfo{android.demo.com/android.demo.com.MainActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class fragment

Я не знаю, где я сделал ошибку. Много перепробовал и ничего не нашел в сети. Любая помощь или пример очень ценятся. Спасибо !


person Srujan Simha    schedule 31.01.2013    source источник
comment
Это не похоже на ошибку с тем, что вы разместили. Куда вы пытаетесь раздуть свои фрагменты для SlidingMenu?   -  person hwrdprkns    schedule 31.01.2013
comment
@hwrdprkns Вот что, я действительно не понимаю, где я допустил ошибку. Пожалуйста, предложите мне что-нибудь.   -  person Srujan Simha    schedule 31.01.2013
comment
Я подозреваю, что вам не нужно включать SlidingMenu в RelativeLayout. Однако это не проблема для SlidingMenu, потому что он не использует фрагменты. Опубликуйте свой @layout/testing, я подозреваю, что проблема именно в нем.   -  person hwrdprkns    schedule 31.01.2013
comment
Смотрите мой пост, я добавил testing.xml с простым текстовым представлением. И testing_two.xml также имеет простое текстовое представление.   -  person Srujan Simha    schedule 31.01.2013
comment
@SrujanSimha ты решил эту проблему? если нет, то скажите, где вы использовали этот menu_frame.xml?   -  person suresh cheemalamudi    schedule 06.03.2013


Ответы (1)


Ваша проблема здесь. Ваш код:

sliding:viewAbove="@layout/menu_frame"
sliding:viewBehind="@layout/menu_frame"

Из примера документа:

sliding:viewAbove="@layout/YOUR_ABOVE_VIEW"
sliding:viewBehind="@layout/YOUR_BEHIND_BEHIND"

Вы должны убедиться, что находится выше и что находится за видом.

Обновление: я проверил ваш код, проблем с ним нет. Единственное, что мне пришлось сделать, это удалить sliding:fadeEnabled="true" из-за ошибки компиляции для меня. Возможно, вы захотите посмотреть что-то еще в своем коде или попытаться удалить эту строку и попробовать.

person wtsang02    schedule 31.01.2013
comment
Я только что добавил макет testing.xml с простым TextView. Но все равно получаю ту же ошибку. - person Srujan Simha; 31.01.2013
comment
Потому что вы снова устанавливаете для них один и тот же вид. Попробуйте установить для них разные представления. - person wtsang02; 31.01.2013
comment
Как вы сказали, я создал еще один xml с некоторым текстом, но, как обычно, получаю ту же ошибку! - person Srujan Simha; 31.01.2013
comment
Я попробовал ваше новое обновление, но в моем случае оно не сработало. Я должен что-то делать с Фрагментами? - person Srujan Simha; 31.01.2013