Реализация слайд-меню Ю. Файнштейна
Я пытаюсь разработать приложение, используя библиотеку Джереми Файнштейна SlidingMenu, что мне показалось очень интересным. Я настроил все и создал пример проекта, чтобы проверить, могу ли я реализовать скользящее меню, но, к сожалению, я не смог увидеть ни одного скользящего меню в своем приложении.
это то, что я сделал,
скачал SlidinMenu ЗДЕСЬ и импортировал в затмение как существующий проект Android. Изменен уровень API Google. (Теперь больше нет красной метки на нем.)
Создал новый проект и добавил в него библиотеку скользящего меню.
Как объяснил 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, dimension.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
Я не знаю, где я допустил ошибку. Много пытался, и я ничего не мог понять онлайн. Любая помощь или пример высоко ценится. Спасибо!
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"
из-за ошибки компиляции для меня. Возможно, вы захотите посмотреть где-нибудь еще в своем коде или попытаться удалить эту строку и попробовать.