小编ale*_*lom的帖子

Android片段和动画

你应该如何实现那种例如Honeycomb Gmail客户端使用的滑动?

可以TransactionManager通过添加和删除片段自动处理这个,由于模拟器是幻灯片,所以很难测试这个:)

android android-fragments android-3.0-honeycomb

260
推荐指数
4
解决办法
23万
查看次数

Android Honeycomb中的加载器

我正试图弄清楚如何Loaders在Android 3.0中使用,但似乎无法让它工作.文档只描述使用,CursorLoader但我正在使用AsyncTaskLoader.

从文档中看来,您应该只需要实现,AsyncTaskLoader.loadInBackground()但它永远不会被调用getLoaderManager().initLoader(),然后在回调中创建加载器.

我可以看到调试消息说它Created new loader LoaderInfo{4040a828 #0 : ArticleDataLoader{4036b350}}好像是成功创建的.

是否有可能在SDK中破坏了加载器,或者在创建加载器后是否需要调用某些方法?(他们在CursorLoader示例中没有这样做).

编辑:似乎调用forceLoad()返回的Loader initLoader()至少启动加载,但这意味着你无法正确处理旋转:(

android android-3.0-honeycomb android-loadermanager android-loader

36
推荐指数
1
解决办法
5732
查看次数

没有视图的片段在配置更改时崩溃

我有一个UI,我需要Fragment在横向模式下显示(带有视图),但不能在纵向模式下显示.在纵向模式下,它应该仍然可用,但会使用ListPopupWindow相反的方式显示其结果.

我想我可以通过使用<fragment />横向布局的标签来处理这个问题,同时如果它没有启动(在我们是肖像的情况下)以编程方式创建片段.

只要从横向开始,这种方法就可以正常工作,如果以纵向方式开始,以编程方式创建片段,当您尝试将片段附加到布局时旋转模拟器时,应用程序将崩溃:

java.lang.IllegalStateException:Fragment没有创建视图.在android.app.Activity.onCreateView(Activity.java:4095)

这些文档Fragment.isInLayout()似乎暗示它应该能够以这种方式处理它:

如果布局通过标记包含在活动视图层次结构中,则返回true.当通过标记创建片段时,这将始终为真,除非旧片段从先前状态恢复且未出现在当前状态的布局中.

所以问题是如何正确地做到这一点,或者是否有我遗漏的东西?

更新:

似乎不像isInLayout()现在这样表现.如果已Fragment手动将a 添加到容器,则返回false .

此外,如果您Fragment手动添加到容器,然后将(设备)旋转到不包含该布局的布局,它将崩溃:

引起:java.lang.IllegalArgumentException:在android.app.FragmentManagerImpl.moveToState(FragmentManager.java:722)中找不到片段SearchFragment {4042f868#2 id = 0x7f060011 SearchFragment}的id 0x7f060011的视图

java android android-fragments android-3.0-honeycomb

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

在没有显式布局高度的情况下使用android:layout_alignParentBottom作为ListView中的行

当我使用RelativeLayout与任一fill_parentwrap_content作为高度和其指定的元件:android:layout_alignParentBottom="true"它被忽略,它是在顶部对齐.将高度设置为RelativeLayout显式值使其有效.有线索吗?

layout android

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

如何处理快速搜索框结果和最近的搜索建议?

我正在尝试在同一个应用程序中实现全局搜索中的最新建议自定义建议.它们都使用相同的路径中提供商所以它似乎并不像它有可能为他们返回不同的结果.例如,最近在快速搜索框中搜索建议和实际搜索结果.

有关如何做到这一点的任何想法?

java android

11
推荐指数
1
解决办法
1069
查看次数

分配免费游戏

我的代码基本上是免费分配的,但是当60fps时,GC每30秒运行一次.使用DDMS检查应用程序以进行分配显示有很多SimpleListIterator被分配.因为我使用了也有一些东西被分配Exchanger.

SimpleListIterator来自每个循环for (T obj : objs) {}.我的印象是编译器/翻译器会优化那些不使用迭代器来支持它的类型(我基本上只使用ArrayList),但似乎并非如此.

我怎样才能避免分配所有这些SimpleListIterators?一种解决方案是切换到常规循环,for (int i = 0; i < size; ++i) {}但我喜欢每个循环:(

另一种方法是扩展ArrayList,它返回一个Iterator只分配一次的ArrayList .

我一起攻击的第三种方法是使用一个静态辅助函数,它返回一个Collection重用的函数Iterator.我一起攻击了这样的东西,但铸件感觉非常黑暗和不安全.虽然我使用它应该是线程安全的ThreadLocal吗?见下文:

public class FastIterator {
    private static ThreadLocal<Holder> holders = new ThreadLocal<Holder>();

    public static <T> Iterable<T> get(ArrayList<T> list) {
        Holder cont = holders.get();

        if (cont == null) {
            cont = new Holder();

            cont.collection = new DummyCollection<T>();
            cont.it = new Iterator<T>();

            holders.set(cont);
        }

        Iterator<T> …
Run Code Online (Sandbox Code Playgroud)

java android opengl-es

5
推荐指数
1
解决办法
344
查看次数

如何消除Android OpenGL ES中的锯齿状边缘?

我有以下代码:

public void onSurfaceCreated(GL10 gl, EGLConfig config) {
    gl.glClearColor(0.0f, 0.0f, 0.0f, 0.5f);
    gl.glShadeModel(GL10.GL_SMOOTH);
    gl.glClearDepthf(1.0f);
    gl.glEnable(GL10.GL_DEPTH_TEST);
    gl.glDepthFunc(GL10.GL_LEQUAL);
    //gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_NICEST);
    gl.glHint(GL10.GL_POLYGON_SMOOTH_HINT, GL10.GL_NICEST);
}

public void onDrawFrame(GL10 gl) {
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
    gl.glLoadIdentity();
Run Code Online (Sandbox Code Playgroud)

但在Android模拟器中,边缘仍然是严重的锯齿状.解决办法是什么?

android opengl-es

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

在模拟器中使用Google应用

是否可以提供Google apps具有真实设备Gmail等所有功能的仿真器映像?

我无法访问2.0设备,这使我几乎不可能开发/调试使用AccountManager等的应用程序.

android

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

Android和RESTful服务

在谷歌I/O期间的Virgil Dobjanschi谈话中,他提到Services用于进行提取,然后使用回调来通知Activity何时完成.他从未详细说明如何实现此回调,我似乎无法在任何地方找到任何有用的信息.

我想他说你根本不需要实现绑定?

有线索吗?

android

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