小编zna*_*nat的帖子

如何获得ActionBar高度?

ActionBar每次创建一个活动时都试图获得(使用Sherlock)的高度(特别是在ActionBar高度可能改变的情况下处理轮换时的配置更改).

为此,我使用的方法ActionBar.getHeight()仅在ActionBar显示时才有效.

当第一次创建的第一个活动,我可以调用getHeight()onCreateOptionsMenu回调.但是这个方法之后没有被调用.

所以我的问题是我什么时候可以调用getHeight()并确保它不会返回0?或者如果不可能,我如何设置ActionBar的高度?

android android-actionbar

179
推荐指数
8
解决办法
16万
查看次数

PopupWindow $ BadTokenException:无法添加窗口 - 令牌null无效

显示PopupWindow时出现以下错误.错误由行触发:

checkInPopup.showAtLocation((ViewGroup) mapView.getParent(), Gravity.CENTER_HORIZONTAL, 0, 0);
Run Code Online (Sandbox Code Playgroud)

mapView是一个MapView,没有任何东西是空的.堆栈跟踪:

01-08 18:00:09.402: E/AndroidRuntime(27768): Caused by: android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.view.ViewRootImpl.setView(ViewRootImpl.java:513)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:301)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:215)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:140)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.view.Window$LocalWindowManager.addView(Window.java:537)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.widget.PopupWindow.invokePopup(PopupWindow.java:988)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.widget.PopupWindow.showAtLocation(PopupWindow.java:845)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.widget.PopupWindow.showAtLocation(PopupWindow.java:809)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at com.geoloc.ActivityCheckIn.onCreate(ActivityCheckIn.java:50)
01-08 18:00:09.402: E/AndroidRuntime(27768):    at android.app.Activity.performCreate(Activity.java:4465)
01-08 18:00:09.402: E/AndroidRuntime(27768): …
Run Code Online (Sandbox Code Playgroud)

android

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

ViewPager - 获取下一页的部分视图

我试图在ViewPager中实现这一点

显示第一个片段(蓝色),并且还必须显示下一个片段的开头,因此用户理解他可以滑动以切换视图.这个想法是以编程方式向左滚动屏幕的20%.

欢迎任何想法

编辑:这正是我需要的:中心视图需要重叠两个侧视图

在此输入图像描述

android android-viewpager

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

ActionBarSherlock - 无法解析android.support.v4.app.Fragment类型.它是从所需的.class文件间接引用的

我正在将ActionBarSherlock用作项目中的库项目,该项目本身就是一个库.在将项目移动到新计算机并更新SDK工具之前,一切正常.

我有这个错误,我不明白.当我创建一个像这样扩展SherlockFragment的类:

import com.actionbarsherlock.app.SherlockFragment;

public class SomeFragment extends SherlockFragment {
    ... 
}
Run Code Online (Sandbox Code Playgroud)

我有以下编译错误:

The type android.support.v4.app.Fragment cannot be resolved. It is indirectly referenced from required .class files
Run Code Online (Sandbox Code Playgroud)

我检查了以下内容:

  • ActionBarSherlock作为库导入
  • 在构建路径(没有红叉)和actionbarsherlock.jar中没有明显的错误
  • 支持库位于ActionBarSherlock项目中,而不是其他依赖项目

还要别的吗?

android actionbarsherlock

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

从IntentService获取位置时,在死线程上向Handler发送消息

即使手机没有醒来,我的应用也需要定期修复定位.为此,我使用IntentService和Commonsware慷慨提供的模式. https://github.com/commonsguy/cwac-wakeful

为了获得位置修复,我依赖于一个名为Fedor的成员提供的以下代码. 在Android上获取用户当前位置的最简单,最强大的方法是什么?.我稍微修改它以返回null而不是获取最后的已知位置

它们在没有组合时都能很好地工作:我可以在一个Activity中从Fedor的类中获得一个位置修复,我可以使用Commonsware类做一些基本的东西(比如记录一些东西).

当我试图从Commonsware的WakefulIntentService子类获取位置修复时,会出现问题.LocationListeners没有对locationUpdates做出反应,我得到了这些警告(我还没有得到线程,处理程序......的细微之处).有人可以帮我理解问题所在吗?谢谢,祝大家新年快乐:)

12-31 14:09:33.664: W/MessageQueue(3264): Handler (android.location.LocationManager$ListenerTransport$1) {41403330} sending message to a      Handler on a dead thread
12-31 14:09:33.664: W/MessageQueue(3264): java.lang.RuntimeException: Handler (android.location.LocationManager$ListenerTransport$1) {41403330} sending message to a Handler on a dead thread
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.MessageQueue.enqueueMessage(MessageQueue.java:196)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessageAtTime(Handler.java:473)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessageDelayed(Handler.java:446)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Handler.sendMessage(Handler.java:383)
12-31 14:09:33.664: W/MessageQueue(3264): at android.location.LocationManager$ListenerTransport.onLocationChanged(LocationManager.java:193)
12-31 14:09:33.664: W/MessageQueue(3264): at android.location.ILocationListener$Stub.onTransact(ILocationListener.java:58)
12-31 14:09:33.664: W/MessageQueue(3264): at android.os.Binder.execTransact(Binder.java:338)
12-31 14:09:33.664: W/MessageQueue(3264): at dalvik.system.NativeStart.run(Native Method)
Run Code Online (Sandbox Code Playgroud)

这是我的WakefulIntentService子类: …

android commonsware-cwac

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

为什么在ViewHolder模式中ViewHolder类应该是静态的?

我只是想更好地理解我经常用来优化的以下模式 ListView

我的读物只指出了一个事实,即静态内部类被视为顶级类.与成员类(非静态)相比,这样的东西有什么好处?

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    Comment comment = getItem(position);
    ViewHolder holder;
    if (convertView == null){
        holder = new ViewHolder();
        convertView = LayoutInflater.from(context).inflate(R.layout.mylayout, null);
        holder.nickname = (TextView) ((ViewGroup) convertView).findViewById(R.id.nickname);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.nickname.setText(comment.getMember_nickname());
    CharSequence
    return convertView;
}

public static class ViewHolder{
    TextView nickname;
}
Run Code Online (Sandbox Code Playgroud)

java android android-viewholder

23
推荐指数
2
解决办法
5508
查看次数

Express.js - 如何为所有响应设置标头

我使用Express进行Web服务,我需要在utf-8中编码响应.

我知道我可以对每个回复做以下事情:

response.setHeader('charset', 'utf-8');
Run Code Online (Sandbox Code Playgroud)

是否有一种干净的方法为快递应用程序发送的所有响应设置标题或字符集?

http-headers node.js express

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

Docker 如何将相对路径作为参数传递

我想运行这个命令:

docker run docker-mup deploy --config .deploy/mup.js
Run Code Online (Sandbox Code Playgroud)

其中docker-mup是图像的名称deploy--config,.deploy/mup.js是参数

我的问题:如何安装一个卷,使其.deploy/mup.js被理解为docker run运行命令的主机上的相对路径?

我尝试了不同的方法,VOLUME但 VOLUME 似乎相反:它向主机公开了一个容器目录。

我不能使用 -v 因为这个容器将用作 CI/CD 管道中的构建步骤,据我所知,它只是按原样运行。

docker

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

为[Class]生成MembersInjector.更喜欢在该类上运行匕首处理器

我有这些警告,我不明白他们的意思.有人能指点我吗?

对于我注入的类(有component.inject(this)声明)

Note: Generating a MembersInjector for [class] Prefer to run the dagger processor over that class instead.
Run Code Online (Sandbox Code Playgroud)

对于我正在注入的对象(带有注释的constuctor @Inject)

Note: Generating a Provider for [class]. Prefer to run the dagger processor over that class instead.
Run Code Online (Sandbox Code Playgroud)

android dagger-2

18
推荐指数
1
解决办法
4192
查看次数

Java反射API:调用不带参数的方法

我想调用的方法(我知道它是公开的,但我需要使用反射):

public byte[] myMethod()  
Run Code Online (Sandbox Code Playgroud)

我得到这样的Method对象并m包含myMethod()(我用调试器检查)

Method m = Class.forName(MyClass.class.getName()).getDeclaredMethod("myMethod");
Run Code Online (Sandbox Code Playgroud)

最后,我需要调用m并将结果传递给对象:

byte[] myBytes = null;
m.invoke(myBytes);
Run Code Online (Sandbox Code Playgroud)

没有抛出异常但myBytes保持为null ...我也尝试了以下方法但没有取得更多成功:

m.invoke(myBytes, (Object[])null);
Run Code Online (Sandbox Code Playgroud)

如何获得调用myBytes的结果?

java reflection

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