我想从使用ActionBar和Fragments的标准NavigationDrawer转移并实现这些图片中详述的可折叠导航项:Here(类似于第4项)。
我知道我必须使用ExpandableListView,但我不确定如何将其实现到我当前的设置中。
MainActivity.java
:
public class MainActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks, atcCTIFragment.OnFragmentInteractionListener, atcSectionWebFragment.OnFragmentInteractionListener {
//Variables for the download portion
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
/**
* Fragment managing the behaviors, interactions and presentation of the navigation drawer.
*/
private NavigationDrawerFragment mNavigationDrawerFragment;
/**
* Used to store the last screen title. For use in {@link #restoreActionBar()}.
*/
private CharSequence mTitle;
private ProgressDialog mProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
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));
}
@Override
public void onNavigationDrawerItemSelected(int position) {
Fragment fragment = new atcSectionWebFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
switch (position) {
case 0:
fragment = new atcSectionWebFragment();
break;
case 2:
fragment = new atcCTIFragment();
break;
}
fragmentManager.beginTransaction().replace(R.id.container, fragment).commit();
switch (position) {
case 1:
Intent intent = new Intent(this, atcDictionary.class);
startActivity(intent);
}
}
public void onSectionAttached(int number) {
switch (number) {
case 1:
mTitle = getString(R.string.title_section1);
break;
case 2:
mTitle = getString(R.string.title_section2);
break;
case 3:
mTitle = getString(R.string.title_section3);
break;
case 4:
mTitle = getString(R.string.title_section4);
break;
case 5:
mTitle = getString(R.string.title_section5);
}
}
activity_main.xml
:
<!-- As the main content view, the view below consumes the entire
space available using match_parent in both dimensions. -->
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<!-- android:layout_gravity="start" tells DrawerLayout to treat
this as a sliding drawer on the left side for left-to-right
languages and on the right side for right-to-left languages.
If you're not building against API 17 or higher, use
android:layout_gravity="left" instead. -->
<!-- The drawer is given a fixed width in dp and extends the full height of
the container. -->
<fragment
android:id="@+id/navigation_drawer"
android:name="com.fascination.atcassistantlitev2.NavigationDrawerFragment"
android:layout_width="@dimen/navigation_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start" />
</android.support.v4.widget.DrawerLayout>
如果有人知道我可以关注的教程,那么我可以学习如何实现这一点,这将是非常棒的!
由于
答案 0 :(得分:0)
将ListView
中的NavigationDrawerFragment
更改为ExpandableListView
,并添加逻辑以显示用户点击列表项时的选项。您还必须移动逻辑以更新展开项目的onClick
方法右侧的UI。