ここでチュートリアルを使用したアプリが1つあります:http://developer.android.com/training/implementing-navigation/nav-drawer.html
現在、Navigation DrawerActivityテンプレートを選択した新しいプロジェクトに取り組んでいます。
残念ながら、このテンプレートの動作はチュートリアルとはまったく異なり、希望どおりに変更するのに苦労しています。
ナビゲーションドロワーのレイアウトは次のようになります。
<ListView 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"
android:background="#cccc"
android:choiceMode="singleChoice"
android:divider="@android:color/transparent"
android:dividerHeight="0dp"
tools:context="com.example.appname.NavigationDrawerFragment" />
チュートリアルのMainActivityで、mDrawerListアダプターのdrawer_list_itemを設定できます。
mPlanetTitles = getResources().getStringArray(R.array.planets_array);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this, R.layout.drawer_list_item, mPlanetTitles));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
テンプレートでは、物事は異なる方法で行われます。
mNavigationDrawerFragment = (NavigationDrawerFragment) getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);
mTitle = getTitle();
// Set up the drawer.
mNavigationDrawerFragment.setUp(R.id.navigation_drawer, (DrawerLayout) findViewById(R.id.drawer_layout));
ナビゲーションドロワーレイアウトへの参照を手動で作成し、アダプターを設定しようとしましたが、タイトルが空白になっただけでした。
誰かがこれをうまくやったことがありますか?チュートリアルとはまったく異なる動作をするテンプレートを作成してくれたGoogleを酷評します。
さて、私は答えを見つけました、私は明らかに昨日きちんと見ていませんでした。
これで、navドロワーのセットアップがnavドロワーフラグメントクラスで実行されます。
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
///yada yada yada
mDrawerListView.setAdapter(new ArrayAdapter<String>(getActionBar()
.getThemedContext(), android.R.layout.simple_list_item_1,
android.R.id.text1, new String[] {
getString(R.string.title_section1),
getString(R.string.title_section2),
getString(R.string.title_section3),}));
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
}
そのため、ArrayAdapterのレイアウトリソースを変更するだけで済みました。
mDrawerListView.setAdapter(new ArrayAdapter<String>(getActionBar()
.getThemedContext(), R.layout.drawer_list_item,
android.R.id.text1, new String[] {
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加