我正在使用Lollipop和AppCompat-v7库中引入的新添加的工具栏.我按照本指南设置了工具栏我注意到当你调用一些会调出上下文ActionBar的内容(例如突出显示复制/粘贴的文本)时,它会将工具栏向下推到页面上.您可以在页面底部的图像中看到我在说什么:
所以,基本上,我这样设置它.我在xml文件中定义了工具栏,我使用包含标签:
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="?attr/colorPrimary"/>
Run Code Online (Sandbox Code Playgroud)
然后,我在我的视图中实例化它:
<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"
android:id="@+id/root"
tools:context=".MainActivity">
<include
layout="@layout/toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<!-- Rest of view -->
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
在代码中,我这样设置:
// On Create method of activity:
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
有没有人知道怎么做才能让Contextual ActionBar超越工具栏?

android android-appcompat android-5.0-lollipop android-toolbar
可能重复:
与adb的连接已关闭,并且发生了严重错误
我目前正在尝试在最新版本的Eclipse中开发Android应用程序.当我尝试构建和运行时,会出现以下内容:
[2011-02-17 17:08:03 - <ProgramName>] The connection to adb is down, and a severe error has occured.
[2011-02-17 17:08:03 - <ProgramName>] You must restart adb and Eclipse.
[2011-02-17 17:08:03 - <ProgramName>] Please ensure that adb is correctly located at 'C:\<sdk-directory>s\platform-tools\adb.exe' and can be executed.
Run Code Online (Sandbox Code Playgroud)
现在,我已经更新了ADT插件,我有最新版本的Android SDK; 实际上,adb.exe位于platform-tools目录中并且可以执行.我尝试过在Google上找到的所有内容:
注意:我正在运行Windows 7.此外,我之前在Eclipse中测试过应用程序.自升级SDK以来,此错误对我来说是新的.
我正在尝试更新我的Android应用程序,以便更好地运行Honeycomb的平板电脑.因此,我的目标是SDK的版本11(我的minSdkVersion = 4).这将Honeycomb主题添加到我的应用程序中,使其看起来更好.但是,我无法访问我的菜单选项.所以,我正在尝试将我的菜单项添加为操作栏项目,并在my/res/menu /文件夹中的文件中添加以下内容:
android:showAsAction="ifRoom|withText"
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
在'android'包中找不到属性'showAsAction'的资源标识符
我尝试将minSdkVersion数字改为11以确定它是否有用,但没有运气.有任何想法吗?谢谢!
我正在开发一个需要打印到打印机的Android应用程序.我决定使用Google云打印,因为它似乎很容易设置.最初,我按照此处找到的步骤集成到Android中.这有效,因为它将打印到我想要的打印机.但是,这个过程对用户来说有点牵扯.就我而言,过程如下:
不幸的是,我的客户不想要这个过程.他们希望用户在步骤2中单击"打印",然后打印图片(步骤1,2和6).因此,我不能使用Google提供的Intent,我必须使用实际的API.这需要我获得Google Auth令牌,获取所需的打印机,然后以这种方式提交打印作业.我做以下事情:
我有前两个完成.我只是在实际打印图片时遇到了麻烦.而不是打印图片,正在打印图片的字节数据(Base64编码).以下是关于我如何发送请求的一些代码:
ContentResolver contentResolver = context.getContentResolver();
try {
InputStream is = contentResolver.openInputStream(uri);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[4096];
int n = is.read(buffer);
while (n >= 0) {
baos.write(buffer, 0, n);
n = is.read(buffer);
}
is.close();
baos.flush();
content = Base64.encodeToString(baos.toByteArray(), Base64.DEFAULT);
} catch (FileNotFoundException e) {
Log.d(TAG, "File not found: " + uri.toString(), e);
} catch (IOException e) { …Run Code Online (Sandbox Code Playgroud) 我有一个很大的问题,我不太了解发生了什么.我正在开发一个使用Fragments(来自支持库)的应用程序,并且正在使用FragmentTransaction.replace()将新片段放到后端堆栈上并替换旧堆栈.代码如下:
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = ft.beginTransaction();
// Animations in my res/anim folder
ft.setCustomAnimations(R.anim.slide_in_right, R.anim.slide_out_left, R.anim.slide_in_left, R.anim.slide_out_right);
ft.replace(R.id.fragment_container, newFragment, tag);
ft.addToBackStack(null);
ft.commit();
Run Code Online (Sandbox Code Playgroud)
这成功地取代了我的片段.我的问题如下.在一个片段中,我有一个根据用户输入构建的项目列表.现在,当用户单击下一步然后单击后退按钮(返回列表)时,列表为空,因为视图已被销毁.现在,我注意到以下内容:
所以,我想我的主要问题是:有没有办法在使用时保留View状态(只是保留Fragment)replace?有FragmentTransaction.add(),但也存在一些问题.一个是没有执行退出动画,因此动画不正确.另一个是旧片段(即处于不可见状态的片段)仍然是可点击的新片段.例如,如果我有一个ListFragment,并且我使用add将内容片段放在其上,我仍然可以单击ListFragment中的列表项.
android android-lifecycle android-fragments android-fragmentactivity
借助Android Lollipop和AppCompat-v7中的新工具栏API,他们正在删除许多自动功能,以使Toolbar/ActionBar更加强大.其中一个是进度条.由于Toolbar只是一个ViewGroup,我假设添加一个ProgressBar很简单.但是,我似乎无法让它正常工作.
我做了以下(使用SmoothProgressBar库):
// I instantiate the toolbar and set it as the actionbar
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
// I create a ProgressBar and set the drawable to the SmoothProgressBar drawable
ProgressBar progressBar = new ProgressBar(this);
progressBar.setIndeterminateDrawable(new SmoothProgressDrawable.Builder(this).color(Color.BLUE).interpolator
(new DecelerateInterpolator()).sectionsCount(4).separatorLength(8).speed(2f).mirrorMode(true).build());
// I add the progressbar to the view with what I thought were the proper LayoutParams.
Toolbar.LayoutParams params = new Toolbar.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 20);
params.gravity = Gravity.BOTTOM;
mToolbar.addView(progressBar, params);
progressBar.setIndeterminate(true);
Run Code Online (Sandbox Code Playgroud)
我认为这可行,因为我只是将一个ProgressBar添加到ViewGroup的底部.但是,它根本没有显示,正在删除标题.下面你可以看到前后.有谁知道如何解决这个问题?我的目标是在操作栏下面放置一个ProgressBar.
之前

后

我正在开发我的第一个Android应用程序.我正在为我的应用程序使用选项卡式布局.我在开发指南上按照教程进行了操作并遇到了问题.本教程仅使用了三个选项卡,但我还需要更多选项卡.因此,选项卡会调整大小并组合起来.我希望有人可以告诉我如何让它们滚动,就像使用多个标签时在dolphin浏览器中一样.谢谢!
〜阿龙
我想知道如何创建一个只在首次打开应用程序时弹出的对话框.例如,我在市场上有一个Android应用程序.当我更新它时,我想实现一个弹出的框,显示应用程序中已更新的内容,并且在应用程序再次更新之前不会再次弹出.谢谢!
我RecyclerView在某些设备上遇到了一个奇怪的问题(目前看来只是三星).我收到以下错误消息:
java.lang.UnsupportedOperationException: RecyclerView does not support scrolling to an absolute position.
at android.support.v7.widget.RecyclerView.scrollTo(RecyclerView.java:869)
at android.view.View.setScrollX(View.java:9945)
at android.animation.PropertyValuesHolder.nCallIntMethod(PropertyValuesHolder.java)
at android.animation.PropertyValuesHolder.access$200(PropertyValuesHolder.java:35)
at android.animation.PropertyValuesHolder$IntPropertyValuesHolder.setAnimatedValue(PropertyValuesHolder.java:825)
at android.animation.ObjectAnimator.animateValue(ObjectAnimator.java:571)
at android.animation.ValueAnimator.animationFrame(ValueAnimator.java:1175)
at android.animation.ValueAnimator.doAnimationFrame(ValueAnimator.java:1216)
at android.animation.ValueAnimator.setCurrentPlayTime(ValueAnimator.java:524)
at android.animation.LayoutTransition.startChangingAnimations(LayoutTransition.java:1021)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2206)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1254)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6637)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:814)
at android.view.Choreographer.doCallbacks(Choreographer.java:614)
at android.view.Choreographer.doFrame(Choreographer.java:584)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:800)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:146)
at android.app.ActivityThread.main(ActivityThread.java:5602)
at java.lang.reflect.Method.invokeNative(Method.java)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(NativeStart.java)
Run Code Online (Sandbox Code Playgroud)
其中的代码RecyclerView.scrollTo(x,y)是:
@Override
public void scrollTo(int x, int y) {
throw new UnsupportedOperationException(
"RecyclerView …Run Code Online (Sandbox Code Playgroud) 我是Linux的新手,正在尝试为Android开发设置我的机器.我安装了SDK,并通过更改〜/ .bashrc并添加以下内容来设置路径中的"platform-tools":
export PATH=$PATH:/home/user/sdk/platform-tools
Run Code Online (Sandbox Code Playgroud)
当我输入:
echo $PATH
Run Code Online (Sandbox Code Playgroud)
进入命令行,它将目录吐回我的sdk platform-tools.
现在,当我输入:
adb devices
Run Code Online (Sandbox Code Playgroud)
命令行显示"未找到adb命令".
如果有人能帮助我,我将不胜感激.谢谢!
〜Nemisis7654