小编Jaw*_*wad的帖子

工具栏 - 只需一个活动即可从抽屉切换到后退按钮

我一直在寻找如何在抽屉打开/关闭图标(从汉堡包到箭头)到简单的向后箭头之间切换的方法.我的应用程序目前只有一个Activity在几个片段之间切换.有一次,我想在一个主要片段(即抽屉中的一个片段)之间转换为分层次在前一个片段下的片段(即"添加新片段").在这个新片段中,我想让工具栏显示后退按钮而不是抽屉按钮.

我一直在环顾四周,尝试不同的解决方案.以下是最值得注意的:

目前,我正在考虑一种创建自定义图标的漫长而艰巨的方法,我隐藏并显示(并隐藏/显示本机抽屉图标).但是,有没有更好的方法在抽屉和后退按钮之间切换?

作为一个侧面相关的问题,我一直在查看Material Design文档,并且一些示例在左上角有一个X. 与实现抽屉vs后退/向上按钮相比,实现起来有多么不同?

谢谢〜

编辑:

我可以弄清楚如何替换图标,但我如何获得点击事件?

到目前为止,这是我最好的领导:

我现在尝试过的:

  • 必要时禁用DrawerToggle(即mDrawerToggle.setDrawerIndicatorEnabled(useDrawer);)
  • 在我的NavigationDrawerFragment,我的Activity中添加了onOptionsItemSelected中的日志,以及我正在测试哪个运行的DialogFragment if item.getItemId() == android.R.id.home为true.这些日志语句都没有

为了更好的上下文,我现在有一个全屏片段,在菜单中添加一个"保存"按钮,并将抽屉图标更改为"X".片段可以获取保存菜单事件,但是在点击X时甚至不能获得活动和抽屉.

EDIT2:

根据要求,这里有一些代码.请注意,这都是来自这个我正在积极研究的Github回购(注意我在这里或那里有一些无用的功能来进行快速测试).

ActivityMain:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Add the toolbar
    mToolbar = (Toolbar) findViewById(R.id.toolbar);
    if (mToolbar != null) {
        setSupportActionBar(mToolbar);
    }

    // Initialize the drawer
    mNavigationDrawerFragment = (NavigationDrawerFragment)
            getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);

    // Set up the drawer
    mNavigationDrawerFragment.setUp(
            R.id.navigation_drawer,
            (DrawerLayout) findViewById(R.id.drawer_layout),
            mToolbar); …
Run Code Online (Sandbox Code Playgroud)

navigation android android-fragments

40
推荐指数
3
解决办法
3万
查看次数

使用Android Studio生成unsigned,release apk

我需要生成一个未签名的发布 APK(然后其他人将签名并将其发布到商店 - 其他人处理密钥和其他所有内容).我的问题是每当我尝试构建时,Android Studio都会抛出错误:

app-flavorUnsigned-release-unsigned.apk is not signed. Please configure the signing information for the selected flavor using the Project Structure dialog.
Run Code Online (Sandbox Code Playgroud)

我尝试了几种以前的方法:

  • 创建工件失败(无法在任何地方找到任何带有"工件"的菜单,但是对于编辑配置,我找到了选择自定义工件的选项)[ 可能是最好的选择 ]
  • 创建一个空的签名配置
  • 创建自定义风味
  • 使用终端运行gradle assemblegradle assembleRelease(由于我的一个重要模块库试图构建而失败)

这是我当前的[app's] build.gradle:

apply plugin: 'com.android.application'

android {
    signingConfigs {
        unsigned {
            storePassword = ""
            keyAlias = ""
            keyPassword = ""
        }
    }
    compileSdkVersion 19
    buildToolsVersion "20.0.0"
    defaultConfig {
        applicationId "hiddenForClientPrivacy"
        minSdkVersion 13
        targetSdkVersion 20
        versionCode 1
        versionName "1.0"
        signingConfig signingConfigs.unsigned
    }
    buildTypes { …
Run Code Online (Sandbox Code Playgroud)

android build apk android-studio android-gradle-plugin

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

突出显示RecyclerView中的选定项目

我在使用RecyclerView中突出显示项目时遇到问题,类似于在ListView中设置所选项目.

目前,我已经设置了RecyclerView,有一个默认的LayoutManager,并有一个显示所有数据的适配器.我刚刚开始onClickListener()工作(虽然我不确定它是否应该进入onCreateViewHolder()或者onBindViewHolder*(- 不确定何时onBindViewHolder()被调用).

我试过四处寻找,而我最接近的就是这里问题.但是,我完全迷失在这个问题上.该onClick()方法在哪里(在适配器内部,包含Activity/fragment等内部?).那是什么viewHolderListenergetPosition()它的来源是什么,它究竟做了什么?从本质上讲,我从那个问题中找不到任何地方,这是迄今为止我能找到的最好的资源.

这是我目前设置RecyclerView的代码:

// Sets up the main navigation
private void setupMainNav() {
    // use this setting to improve performance if you know that changes
    // in content do not change the layout size of the RecyclerView
    mMainRecyclerNav.setHasFixedSize(true);

    // use a linear layout manager
    LinearLayoutManager layoutManager = new LinearLayoutManager(getActivity());
    mMainRecyclerNav.setLayoutManager(layoutManager);

    // Create and set the adapter for this recyclerView
    MainNavAdapter …
Run Code Online (Sandbox Code Playgroud)

android android-recyclerview

13
推荐指数
3
解决办法
4万
查看次数