小编Sim*_*mon的帖子

Android Studio模拟器不附带Play Store for API 23

我从最新版本的Android Studio AVD中选择了这个模拟器.

Google API

我选择了最新版本的Android API 23.因为它说"使用Google API",我认为它实际上会包含所有Google应用程序,包括Play商店,以便我可以安装像Facebook这样的应用程序.

我看到的SO其他线程这似乎现在已经过时(如何安装谷歌Play应用程序在Android Studio中模拟器?),这个人给了安装基于通用包谷歌应用程序的指令,但只到Android 4.3的API 18:http://wiki.rootzwiki.com/Google_Apps#Universal_Packages_2

我想要API 23的那个.有没有办法在模拟器上安装Google Apps包?

看起来很奇怪,官方的Android模拟器并没有首先标准所有的谷歌应用程序...这似乎不支持谷歌,并可能意味着开发人员将不得不购买实际的设备来开发API 23 ?

android android-emulator android-studio

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

Android布局:具有滚动行为的Viewpager内的垂直Recyclerview内的水平Recyclerview

这是我正在尝试使用以下所有元素构建的应用程序:

蔬菜应用程序

但是,一切正常,我希望内部水平回收视图不捕获任何垂直滚动.所有垂直滚动必须朝向外部垂直回收视图,而不是水平回滚视图,因此垂直滚动将允许工具栏根据其scrollFlag退出视图.

当我将手指放在recyclerview的"StrawBerry Plant"部分并向上滚动时,它会滚出工具栏:

草莓植物

如果我将手指放在水平滚动视图上并向上滚动,它根本不会滚出工具栏.

以下是我目前为止的xml布局代码.

活动的XML布局:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/fragment_container"
    android:clipChildren="false">

    <android.support.design.widget.CoordinatorLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/container"
        >

    <android.support.design.widget.AppBarLayout
        android:id="@+id/appBarLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:minHeight="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:layout_scrollFlags="scroll|enterAlways">

        </android.support.v7.widget.Toolbar>

        <android.support.design.widget.TabLayout
            android:id="@+id/sliding_tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="?attr/colorPrimary"
            style="@style/CustomTabLayout"
            />

    </android.support.design.widget.AppBarLayout>
    <android.support.v4.view.ViewPager
        android:id="@+id/viewPager"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        />

    </android.support.design.widget.CoordinatorLayout>

</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

"水果"片段 XML布局(其是用于该片段编码-片段被标记在上面图片):

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

    <ProgressBar
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/progressBar"
        android:visibility="gone"
        android:layout_centerInParent="true"
        android:indeterminate="true"/>

<!--    <android.support.v7.widget.RecyclerView-->
    <com.example.simon.customshapes.VerticallyScrollRecyclerView
        android:id="@+id/main_recyclerview"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        />

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我使用了一个名为VerticallyScrollRecyclerView的自定义类,该类跟随google在视图组中处理触摸事件的示例.它的目的是拦截和使用所有垂直滚动事件,以便它可以滚动/滚出工具栏: …

android android-layout android-recyclerview android-coordinatorlayout android-appbarlayout

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

使用ProgressBar在底部向Endless Scroll RecyclerView添加项目

我遵循了Vilen关于SO的优秀答案:在RecyclerView网格中将一个不确定的进度条作为页脚,介绍如何使用ProgressBar实现无限滚动回收视图.

我自己实现它并且它有效,但我想扩展这个例子.我想在recyclerview的顶部添加额外的项目,类似于Facebook在添加新状态更新时的操作方式.

我无法成功地将额外的项添加到列表中 - 这是我在其MainActivity中添加到Vilen代码中的代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();

    if (id == R.id.add) {
        myDataset.add(0, "Newly added");
        mRecyclerView.smoothScrollToPosition(0);
        mAdapter.notifyItemInserted(0);
}
return super.onOptionsItemSelected(item);
}
Run Code Online (Sandbox Code Playgroud)

当我点击"添加"按钮时:

添加新项目

当我向下滚动时,我得到两个旋转器而不是一个:

向下滚动

当旋转器完成并且下一个5个物品被加载时,旋转器仍在那里:

旋转后

我究竟做错了什么?

android infinite-scroll android-recyclerview

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

Android共享元素转换:将ImageView从圆形转换为矩形,然后再转换回来

我正在尝试在两个活动之间进行共享元素转换.

第一个活动有一个圆形图像视图,第二个活动有一个矩形图像视图.我只是想让圆圈从第一个活动过渡到第二个活动,在那里它变成一个正方形,当我按回时它回到圆圈.

我发现转换不是那么整洁 - 在下面的动画中,您可以看到矩形图像视图似乎减小了大小,直到它与圆的大小相匹配.方形图像视图会瞬间出现,然后出现圆圈.我想摆脱方形图像视图,以便圆圈成为过渡的终点.

有谁知道这是怎么做的? 在此输入图像描述

我已经创建了一个小测试回购,你可以在这里下载:https://github.com/Winghin2517/TransitionTest

我的第一个活动的代码 - imageview位于MainFragment我的第一个活动中:

public class MainFragment extends android.support.v4.app.Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment_view, container,false);
        final ImageView dot = (ImageView) view.findViewById(R.id.image_circle);
        Picasso.with(getContext()).load(R.drawable.snow).transform(new PureCircleTransformation()).into(dot);
        dot.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(getContext(), SecondActivity.class);
                View sharedView = dot;
                String transitionName = getString(R.string.blue_name);
                ActivityOptionsCompat transitionActivityOptions = ActivityOptionsCompat.makeSceneTransitionAnimation(getActivity(), sharedView, transitionName);
                startActivity(i, transitionActivityOptions.toBundle());
            }
        });
        return view;
    } …
Run Code Online (Sandbox Code Playgroud)

android whatsapp picasso android-transitions shared-element-transition

30
推荐指数
2
解决办法
6085
查看次数

运行整个R代码

如何在RStudio中运行整个R代码脚本?

当我点击RStudio中的Run按钮时,代码只能逐行运行,我希望它一次执行所有代码而不是逐行运行.

到目前为止,我尝试过的唯一方法是选择整个脚本,然后单击运行按钮.另一个选项是逐行运行.

有没有更简单的方法来使用单个按钮或快捷方式运行整个脚本?

r rstudio

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

Android支持库Snackbar,长度不确定

我看到Snackbar在确定屏幕显示的长度时只会采用LENGTH_LONG或LENGTH_SHORT.

我想让它显示,直到有人从屏幕上滑动它.这适用于某些情况,当您遇到持续性错误时,例如当您没有互联网时,并且您希望在2750ms之后选择LENGTH_LONG时通知用户而不会使其从屏幕上消失.

当然我可以将setDuration用于一个可笑的长毫秒值,但是没有办法只是设置它以便它不会消失直到用户解雇它?

android snackbar

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

TextInputLayout:RuntimeException - 无法解析索引24处的属性

我不断收到这个错误,当我试图setErrorEnabled在我的textInputLayout:

03-12 12:29:03.206 5706-5706/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 Process: com.myapp, PID: 5706
                                                 java.lang.RuntimeException: Failed to resolve attribute at index 24
                                                     at android.content.res.TypedArray.getColor(TypedArray.java:401)
                                                     at android.widget.TextView.<init>(TextView.java:696)
                                                     at android.widget.TextView.<init>(TextView.java:632)
                                                     at android.widget.TextView.<init>(TextView.java:628)
                                                     at android.widget.TextView.<init>(TextView.java:624)
                                                     at android.support.design.widget.TextInputLayout.setErrorEnabled(TextInputLayout.java:380)
                                                     at com.bekwaai.popupwindow.RGNamePopUp$1.onClick(RGNamePopUp.java:48)
                                                     at android.view.View.performClick(View.java:4780)
                                                     at android.view.View$PerformClick.run(View.java:19866)
                                                     at android.os.Handler.handleCallback(Handler.java:739)
                                                     at android.os.Handler.dispatchMessage(Handler.java:95)
                                                     at android.os.Looper.loop(Looper.java:135)
                                                     at android.app.ActivityThread.main(ActivityThread.java:5254)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at java.lang.reflect.Method.invoke(Method.java:372)
                                                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Run Code Online (Sandbox Code Playgroud)

这是场景 - 我有一个textInputLayout内部popupwindow.这是popupwidow中的代码.

public class NamePopUp extends PopupWindow {

    android.support.v7.widget.AppCompatEditText name;
    TextInputLayout nameInput;


    public NamePopUp(final Context context) …
Run Code Online (Sandbox Code Playgroud)

android android-edittext android-popupwindow android-textinputlayout

23
推荐指数
1
解决办法
9436
查看次数

Android Studios RuntimeException:dex writer线程中的意外异常

我整个今天都遇到了这个奇怪的错误 - 任何人都知道这里出了什么问题?

据我所知,我一直在正确使用multidex库(以下是来自app.gradle文件):

defaultConfig {
    applicationId "com.example.simon"
    minSdkVersion 14
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
    /*Enabling multidex*/
    multiDexEnabled true
}

dependencies {
    /*    Enabling multidex*/
    compile 'com.android.support:multidex:1.0.1'
}
Run Code Online (Sandbox Code Playgroud)

我的顶级gradle文件非常基本:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.3.0'
        classpath 'com.google.gms:google-services:1.3.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:

    Executing tasks: [:app:generateDebugSources,
:app:generateDebugAndroidTestSources]

Parallel execution with configuration on demand …
Run Code Online (Sandbox Code Playgroud)

android gradle dex android-studio android-gradle-plugin

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

包android.support.v7.internal.view.menu不存在:找不到符号类MenuBuilder

我刚刚从升级我的支持库compile 'com.android.support:appcompat-v7:23.1.1'compile 'com.android.support:appcompat-v7:23.1.0'.

它给了我这个错误:

包android.support.v7.internal.view.menu不存在:找不到符号类MenuBuilder

我在我的应用程序中使用popupmenu.

根据谷歌,PopUpMenu继承了com.android.internal.view.menu.MenuBuilder.Callback接口,因此当我开始构建我的应用程序时,我得到了一个错误列表:http://developer.android.com/reference/android/widget /PopupMenu.html

有谁知道这个界面是否已被弃用?

android android-support-library

21
推荐指数
1
解决办法
7270
查看次数

Android:将TabLayout固定到Scrollview的顶部

我正在看手机上的推特应用程序.

推特应用

你可以看到,当用户向上滚动时,tabLayout实际上只是很好地将自己固定在工具栏的底部而根本不移动.

我想也许他们通过将应用程序的所有顶部(配置文件图片,自行车的配置文件壁纸,草地,文本)放入CollapsingToolBarLayout和AppBarLayout,但实际上只有配置文件壁纸草地上的自行车是CollapsingToolBarLayout和AppBarLayout的一部分,因为这是实际崩溃的唯一部分.文本部分向上滚动,tabLayout只是固定在工具栏下方的顶部.

我在twitter应用程序上阅读了这些学分,看起来他们使用SlidingTabLayout来实现它们的效果.SlidingTabLayout类似于tabLayout,后者在支持库中受支持.

它看起来像现在主流应用程序使用的相当常见的模式 -

Google+应用应用的个人资料视图中使用它:

谷歌+

Facebook Moments在他们的应用中使用它:

facebook时刻

知道他们是怎么做的都设法做到了吗?

我正在寻找类似于所有这些应用程序的东西.

我的要求是:

  1. 滚动时有一个collapsingToolBarLayout崩溃
  2. 在collapsingToolBarLayout下面有一个textview,当它完全折叠时会在toolBar下面滚动和"隐藏".
  3. 当你在collapsingToolBarLayout下滚动textview时,在textview下面有一个tabLayout,它会"粘住"tabLayout.
  4. 在tabLayout下面有一个recyclerview,这样当你点击tabLayout中的每个标签时,recyclerview将在"推文","照片","收藏夹"等列表之间切换.

我查看了SO上发布的另外两个问题:

TabLayout的标签选择指示器在滚动时是否可以固定在屏幕顶部?.这里的答案似乎是改变tabLayout的行为,但我怀疑改变行为实际上会生成twitter应用程序的功能.正如我所提到的,tabLayout似乎位于CollapsingToolBarLayout和AppBarLayout之外,只有当它位于CollapsingToolBarLayout和AppBarLayout中时,行为才有效.

如何在ScrollView顶部固定TabLaout?.这个问题提出的问题与我提出的问题类似,但没有给出足够的细节,也没有答案.

twitter android android-layout google-plus android-tablayout

19
推荐指数
1
解决办法
6995
查看次数