标签: android-navigation

NavUtils.navigateUpFromSameTask如何工作?

请问这种方法的实际行为是什么?我认为当绑定此方法调用我的操作栏后退按钮并在Manifest.xml中设置homepageactivity名称时,应该在按钮中单击后打开它 - 无论当前任务堆栈如何...例如,当我打开时我的Activity来自widget,父Activity不在BackStack中 - 这就是我要解决的问题..我知道我可以以某种方式构建我自己的任务堆栈,但我只是想,这应该是预先解决的,不应该是?现在它将我送回主屏幕..这就是我称之为的地方..代码位于onOptionsItemSelected

 case android.R.id.home: 
            NavUtils.navigateUpFromSameTask(this);
            //finish();
            return true;
Run Code Online (Sandbox Code Playgroud)

android back-stack android-navigation

5
推荐指数
0
解决办法
3317
查看次数

如何在运行时设置活动的父活动?

我有任意数量的分层嵌套视图/活动.操作栏应显示向上导航按钮以在任何视图中导航到更高级别.为此,谷歌文档说我必须在活动的xml定义中使用标记设置父活动.但是,我正在动态创建我的活动,并且子元素可以与它的父元素具有相同的活动.

那么如何在运行时将父活动设置为实际的父实例?

android android-activity android-actionbar up-navigation android-navigation

5
推荐指数
1
解决办法
7080
查看次数

如何使用片段组织应用程序?

我目前正在重新编码我的 android 应用程序的大部分后端,以便更紧密地遵循设计指南。目前我正在使用所有活动和零片段。我正在尝试切换到片段以使用滑出导航绘制并最终使用一些滑动选项卡。

对于现在的导航,我有这个下拉菜单,当点击一个项目时会启动一个新的活动:

在此处输入图片说明

“您的统计信息”活动有点像主页,用户也将在其中进入应用程序。我还希望用户能够从应用程序的任何位置返回到该“页面”。

我计划运行绘图的活动我有一个名为 fragment_main 的绘图布局:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" >

    <FrameLayout
        android:id="@+id/main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    </FrameLayout>

    <ListView
        android:id="@+id/drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="#FFF"
        android:choiceMode="singleChoice"/>

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我加载抽屉布局的活动是:

public class MainDraw extends FragmentActivity {
    final String[] data ={"one","two","three"};
    final String[] fragments ={
            "com.beerportfolio.beerportfoliopro.FragmentOne",
            "com.beerportfolio.beerportfoliopro.FragmentTwo",
            "com.beerportfolio.beerportfoliopro.FragmentThree"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.fragment_main);

        //todo: load statistics

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActionBar().getThemedContext(), android.R.layout.simple_list_item_1, data);

        final DrawerLayout drawer = (DrawerLayout)findViewById(R.id.drawer_layout);
        final ListView navList = (ListView) findViewById(R.id.drawer);
        navList.setAdapter(adapter);
        navList.setOnItemClickListener(new AdapterView.OnItemClickListener(){ …
Run Code Online (Sandbox Code Playgroud)

android android-layout android-fragments android-navigation

5
推荐指数
1
解决办法
1263
查看次数

抽屉打开时导航抽屉禁用后视图

我的导航抽屉让我感到很沮丧.我使用自定义布局,不仅包含通常的列表视图!

每当我点击抽屉部分中的某些部分时,后面列表视图中的行都会被点击.我怎么能禁用它?

解决方案: 只需android:clickable="true"在listview外的抽屉中设置父布局,一切正常.

谢谢你的回答.

android onclick navigation-drawer android-navigation

5
推荐指数
1
解决办法
3354
查看次数

错误:我可以在导航抽屉下单击

我的应用程序中有一个错误,我不知道如何解决它.我的应用程序有两个左右导航抽屉.右侧导航抽屉工作正常,但当左侧导航抽屉打开并在其中单击时,它会检测到我在主布局中单击.为了更好地理解,我给你看这张图:

在此输入图像描述

我希望我解释得很好.

这是我的代码:

  • 布局.

    <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/drawer_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
    <FrameLayout
        android:id="@android:id/tabcontent"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="0" />
    
    <!-- Left -->
    
    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="400dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/black_main"
        android:choiceMode="singleChoice"
        android:divider="#555555"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/menu_list_selector" />
    
    <!-- Right -->
    
    <LinearLayout
        android:id="@+id/right_drawer"
        android:layout_width="400dp"
        android:layout_height="match_parent"
        android:layout_gravity="end"
        android:choiceMode="singleChoice"
        android:background="@color/white_opaque"
        android:orientation="vertical" >
    
        <LinearLayout
            android:id="@+id/container_filtros"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
    
            <LinearLayout
                android:id="@+id/cnt_filtros"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >
    
                <include
                    android:id="@+id/filtros"
                    layout="@layout/menu_filtros" />
            </LinearLayout>
    
            <LinearLayout
                android:id="@+id/cnt_categorias"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:visibility="gone" >
    
                <include
                    android:id="@+id/lstCategorias"
                    layout="@layout/filter_categorias" />
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>
    
    </android.support.v4.widget.DrawerLayout>
    
    Run Code Online (Sandbox Code Playgroud)
  • Java代码:

    private void setSlides(Bundle savedInstanceState) { …
    Run Code Online (Sandbox Code Playgroud)

android android-layout android-navigation

5
推荐指数
2
解决办法
1470
查看次数

使用新工具栏组件,隐藏和显示导航抽屉图标,Home Up图标单击事件片段中的问题

我最近开始更新我的应用程序,以使用带有导航抽屉的Android 5.0中引入的新工具栏组件.应用程序的流程是:MainActivity有一个工具栏,带菜单的导航抽屉1.主页2.购物车.

主菜单通过其中的按钮导航到"主页详细信息".

"MainActivity"的布局:

<LinearLayout 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:orientation="vertical">
<include
    android:id="@+id/toolbar"
    layout="@layout/toolbar" />
<android.support.v4.widget.DrawerLayout
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <FrameLayout android:id="@+id/activity_frame" 
         android:layout_width="match_parent"
        android:layout_height="match_parent"/>
    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@android:color/white"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:listSelector="@android:color/transparent" />
</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我在从抽屉中选择的菜单上的"MainActivity"上添加两个片段HomeFragment,CartFragment,默认选择是位置0即"Home"

class"MainActivity.java"::

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mTitle = mDrawerTitle = getTitle();     
    drawer = (DrawerLayout) findViewById(R.id.drawer);
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    tvTitle = (TextView) mToolbar.findViewById(R.id.toolbar_title);
    if (mToolbar != null) {
        setSupportActionBar(mToolbar);          
    }       
    mDrawerToggle = new ActionBarDrawerToggle(this, drawer,mToolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close) {
        public void onDrawerClosed(View …
Run Code Online (Sandbox Code Playgroud)

android android-fragments navigation-drawer android-navigation android-toolbar

5
推荐指数
1
解决办法
5921
查看次数

为什么 findViewById(R.android.id.home) 总是返回 null?

我正在使用 AppCompat 并尝试调用ImageView属于工具栏的向上/后退按钮。

我知道R.android.id.home存在,因为我可以将其单击作为菜单项进行管理:

public boolean onOptionsItemSelected(MenuItem item) {
    if (item.getItemId() == android.R.id.home) {
         //this works
    }
    return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

除此之外,每当我试图调用findViewById(android.R.id.home)-是它onCreate,是它onClick自定义按钮的-我得到空。如果在上面的示例中,我调用findViewById(item.getItemId()).

为什么?这个问题在这里之前已经被问过,大多数时候是关于 ActionBarSherlock (我没有使用)。另一次建议使用:

getWindow().getDecorView().findViewById(android.R.id.home)
Run Code Online (Sandbox Code Playgroud)

但它不起作用。在那个问题中,OP 还说findViewById(android.R.id.home)适用于 API>3.0,但对我来说不是这样。有任何想法吗?

android android-navigation

5
推荐指数
1
解决办法
2214
查看次数

Android导航视图:仅滚动菜单项问题

我只想滚动导航视图的菜单项,但它也用它滚动标题.请任何人告诉我如何实现这一点......这是我的代码:

activity_main.xml中

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
        .......    
        <android.support.design.widget.NavigationView
            android:id="@+id/navigation_view"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_gravity="start"
            app:headerLayout="@layout/header"
            app:menu="@menu/drawer" />
    </android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

header.xml

    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="190dp"
        android:background="@drawable/background_material"
        android:orientation="vertical"
        >

        <de.hdodenhof.circleimageview.CircleImageView xmlns:app="http://schemas.android.com/apk/res-auto"
            android:id="@+id/profile_image"
            android:layout_width="76dp"
            android:layout_height="76dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_centerVertical="true"
            android:layout_marginLeft="24dp"
            android:layout_marginStart="24dp"
            android:src="@mipmap/ic_launcher"
            app:border_color="#FF000000" /
    </RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

drawer_menu_items.xml

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:checkableBehavior="single">

        <item
            android:id="@+id/inbox"
            android:checked="false"
            android:icon="@drawable/ic_inbox_black"
            android:title="@string/inbox_string" />

        <item
            android:id="@+id/starred"
            android:checked="false"
            android:icon="@drawable/ic_star_black"
            android:title="@string/starred_string" />

        <item
            android:id="@+id/sent_mail"
            android:checked="false"
            android:icon="@drawable/ic_send_black"
            android:title="@string/sent_mail_string" />

        <item
            android:id="@+id/drafts"
            android:checked="false"
            android:icon="@drawable/ic_drafts_black"
            android:title="@string/draft_string" />


        <item
            android:id="@+id/allmail"
            android:checked="false"
            android:icon="@drawable/ic_email_black"
            android:title="@string/all_mail_string" />
        <item
            android:id="@+id/trash"
            android:checked="false" …
Run Code Online (Sandbox Code Playgroud)

android slidingdrawer android-layout android-studio android-navigation

5
推荐指数
2
解决办法
1万
查看次数

Android Navigation Drawer Remains Highlighted

I am able to navigate from Activity1 to Activity2 via my navigation drawer.

But upon pressing the back button at activity2, the option remains highlighted.

My Code in activity1 is as followed

public boolean onNavigationItemSelected(MenuItem Item)
{
    int id = item.getItemId();

    if(id == R.id.activity2)
    {
        Intent goPage2 = new Intent(activity1.this, activity2.class);
        startActivity(goPage2);
    }
}
Run Code Online (Sandbox Code Playgroud)

there is no code in activity 2.

May I know what do I do to remove the highlight?

android android-navigation android-drawer

5
推荐指数
2
解决办法
2466
查看次数

5
推荐指数
1
解决办法
1万
查看次数