我从最新版本的Android Studio AVD中选择了这个模拟器.
我选择了最新版本的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 ?
这是我正在尝试使用以下所有元素构建的应用程序:
但是,一切正常,我希望内部水平回收视图不捕获任何垂直滚动.所有垂直滚动必须朝向外部垂直回收视图,而不是水平回滚视图,因此垂直滚动将允许工具栏根据其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
我遵循了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个物品被加载时,旋转器仍在那里:

我究竟做错了什么?
我正在尝试在两个活动之间进行共享元素转换.
第一个活动有一个圆形图像视图,第二个活动有一个矩形图像视图.我只是想让圆圈从第一个活动过渡到第二个活动,在那里它变成一个正方形,当我按回时它回到圆圈.
我发现转换不是那么整洁 - 在下面的动画中,您可以看到矩形图像视图似乎减小了大小,直到它与圆的大小相匹配.方形图像视图会瞬间出现,然后出现圆圈.我想摆脱方形图像视图,以便圆圈成为过渡的终点.
我已经创建了一个小测试回购,你可以在这里下载: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
如何在RStudio中运行整个R代码脚本?
当我点击RStudio中的Run按钮时,代码只能逐行运行,我希望它一次执行所有代码而不是逐行运行.
到目前为止,我尝试过的唯一方法是选择整个脚本,然后单击运行按钮.另一个选项是逐行运行.
有没有更简单的方法来使用单个按钮或快捷方式运行整个脚本?
我看到Snackbar在确定屏幕显示的长度时只会采用LENGTH_LONG或LENGTH_SHORT.
我想让它显示,直到有人从屏幕上滑动它.这适用于某些情况,当您遇到持续性错误时,例如当您没有互联网时,并且您希望在2750ms之后选择LENGTH_LONG时通知用户而不会使其从屏幕上消失.
当然我可以将setDuration用于一个可笑的长毫秒值,但是没有办法只是设置它以便它不会消失直到用户解雇它?
我不断收到这个错误,当我试图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
我整个今天都遇到了这个奇怪的错误 - 任何人都知道这里出了什么问题?
据我所知,我一直在正确使用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) 我刚刚从升级我的支持库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
有谁知道这个界面是否已被弃用?
我正在看手机上的推特应用程序.
你可以看到,当用户向上滚动时,tabLayout实际上只是很好地将自己固定在工具栏的底部而根本不移动.
我想也许他们通过将应用程序的所有顶部(配置文件图片,自行车的配置文件壁纸,草地,文本)放入CollapsingToolBarLayout和AppBarLayout,但实际上只有配置文件壁纸草地上的自行车是CollapsingToolBarLayout和AppBarLayout的一部分,因为这是实际崩溃的唯一部分.文本部分向上滚动,tabLayout只是固定在工具栏下方的顶部.
我在twitter应用程序上阅读了这些学分,看起来他们使用SlidingTabLayout来实现它们的效果.SlidingTabLayout类似于tabLayout,后者在支持库中受支持.
它看起来像现在主流应用程序使用的相当常见的模式 -
Google+应用在应用的个人资料视图中使用它:
Facebook Moments在他们的应用中使用它:
知道他们是怎么做的都设法做到了吗?
我正在寻找类似于所有这些应用程序的东西.
我的要求是:
我查看了SO上发布的另外两个问题:
TabLayout的标签选择指示器在滚动时是否可以固定在屏幕顶部?.这里的答案似乎是改变tabLayout的行为,但我怀疑改变行为实际上会生成twitter应用程序的功能.正如我所提到的,tabLayout似乎位于CollapsingToolBarLayout和AppBarLayout之外,只有当它位于CollapsingToolBarLayout和AppBarLayout中时,行为才有效.
如何在ScrollView顶部固定TabLaout?.这个问题提出的问题与我提出的问题类似,但没有给出足够的细节,也没有答案.
twitter android android-layout google-plus android-tablayout