Android 用のSlidingMenu ライブラリ ( https://github.com/jfeinstein10/SlidingMenu ) を使用しています。
左と右のメニューがあり、左はスワイプ ジェスチャまたは toggle() メソッドで開いたときに正常に動作します。問題は右側のメニューにあります。スワイプで開くと正常に動作しますが、showSecondaryMenu() を呼び出すと、メニューのレイアウトが膨らむだけで、どのコンポーネントもクリックできません。
これは、セカンダリ メニューのレイアウトです。
<?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"
android:id="@+id/search_sliding_menu_layout" >
<EditText
android:id="@+id/search_sliding_menu_edittext_search"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Search"
android:drawableLeft="@drawable/ic_action_search"
android:ems="10" >
<requestFocus />
</EditText>
<TextView
android:id="@+id/search_sliding_menu_textview_filter_subtitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/search_sliding_layout_subtitle" />
<ExpandableListView
android:id="@+id/search_sliding_menu_expandablelistview_filters"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</ExpandableListView>
<Button
android:id="@+id/search_sliding_layout_btn_filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="@string/search_sliding_layout_btn_filter"
/>
</LinearLayout>
これはフラグメントの onCreateView です。
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View convertView = inflater.inflate(R.layout.search_sliding_menu_layout, null);
filters = (ExpandableListView)convertView.findViewById(R.id.search_sliding_menu_expandablelistview_filters);
filter_btn = (Button)convertView.findViewById(R.id.search_sliding_layout_btn_filter);
claimSearch = (EditText)convertView.findViewById(R.id.search_sliding_menu_edittext_search);
return convertView;
}
そして、これは私がアクティビティから正しいメニューを開始する方法です:
getSlidingMenu().setSecondaryMenu(R.layout.menu_frame_two);
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.menu_frame_two, new MyFragment())
.commit();
getSlidingMenu().showSecondaryMenu();