小编Gau*_*ora的帖子

具有上一页和下一页边界的ViewPager

我正在设计一个包含多个页面的视图.我希望上一页和下一页的边缘显示如下,并实现双指滑动以在页面之间切换.

在此输入图像描述

我尝试使用这里ViewPager建议的负页边距,但只显示屏幕上的一个边,而不是同时显示.

或者,有什么方法可以将我的视图的一部分放在屏幕外,然后设置它的动画,给它一个ViewPager类型效果.

我该怎么办呢?谢谢 !

android viewflipper android-viewpager viewanimator

139
推荐指数
5
解决办法
8万
查看次数

处理方向更改的最佳做法:Android

我正在通过各种实践来处理线程和AsyncTask的方向更改.我遇到了以下解决方案:

  1. Attach-detach模型:在保留实例的同时为线程和AsyncTask附加和分离活动.(来源:1,2)

  2. 无头片段方式:使用非UI /无头片段执行所有与线程相关的操作,并在配置更改时保留其实例.(来源:1,2)

有没有其他方法来处理这种情况?建议的做法是什么?我问这个是因为我在Android文档的任何地方都找不到通用的解决方案.

multithreading android fragment orientation

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

SocketTimeoutException Android

我有一个复杂的应用程序,可以从AWS上的Web服务下载大量内容.但是,我保持SocketTimeoutException50%的时间.根据我的研究,我怀疑可能有以下原因:

  • 时间连接超时少:我把它提高到100秒,但仍不断收到此错误.
  • 内存泄漏:我继续收到GC警告.我读过文章并试图改进我的代码,但它也没有帮助.我还必须提一下,我的应用程序在后台线程中一个接一个地下载2000+ 30KB JSON文件.有效即兴发挥的建议将受到欢迎!
  • 服务器问题:由于Amazon Web Service高度可靠,因此可能不是潜在的问题.
  • 多线程:这可能会以某种方式负责吗?
  • 错误的下载方式:我怀疑我是否以低效的方式下载.如我错了请纠正我.

请帮我弄清楚真正的问题.谢谢 !

public synchronized String getJSONString(String url)
{   
    try {
           URL url1 = new URL(url);
           URLConnection tc = url1.openConnection();
           tc.setConnectTimeout(timeout);
           tc.setReadTimeout(timeout);
          // tc.connect();
           br = new BufferedReader((new InputStreamReader(tc.getInputStream())),8000);
           while ((line = br.readLine()) != null) {
                    sb.append(line+"\n");
                }
                br.close();
                json = sb.toString();
                return json;
        }
    catch(Exception e)
    {
        Log.e("JSON Downloader", "Error downloading feed/article ");
        e.printStackTrace();
    }

    return null;
}
Run Code Online (Sandbox Code Playgroud)

错误日志:

02-01 …
Run Code Online (Sandbox Code Playgroud)

multithreading android memory-leaks socket-timeout-exception

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

滑动层活动动画android

我想为材料设计指南中描述的活动过渡实现滑动层动画.

物质转变

但是,我现在所能做的只是slide_in和stay动画的简单组合,它不会给我一个堆叠层的效果.我怎样才能实现它?

我目前的实施:

在活动开始时:

activity.overridePendingTransition(R.anim.slide_in_right, R.anim.stay);
Run Code Online (Sandbox Code Playgroud)

关于活动结束:

activity.overridePendingTransition(R.anim.stay, R.anim.slide_out_right);
Run Code Online (Sandbox Code Playgroud)

slide_in_right.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
        android:fromXDelta="100%p"
        android:toXDelta="0"
        android:duration="@android:integer/config_shortAnimTime" />
</set>
Run Code Online (Sandbox Code Playgroud)

slide_out_right.xml:

<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:interpolator="@android:anim/accelerate_interpolator">
    <translate
        android:fromXDelta="0"
        android:toXDelta="100%p"
        android:duration="@android:integer/config_shortAnimTime" />
</set>
Run Code Online (Sandbox Code Playgroud)

stay.xml:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="@android:integer/config_shortAnimTime"
    android:fromYDelta="0%p"
    android:toYDelta="0%p" />
Run Code Online (Sandbox Code Playgroud)

animation android material-design

8
推荐指数
2
解决办法
4315
查看次数

应用程序执行一次后,将新表添加到数据库

我正在Android中创建一个简单的数据库.我想在代码执行一次后添加新表.现在,每当我尝试在EventDataSqlHelper类中更改我的onCreate()方法时,我的应用程序崩溃了.

这可能是因为只有首次运行应用程序时才执行onCreate()关联,SQLiteOpenHelper我们无法对其进行进一步修改.

我还尝试编写一个单独的函数来添加新表.它在第一次执行时效果很好.但是因为在第二次执行时它会覆盖它以前的数据库,因此它会导致应用程序崩溃.

如果已经创建了数据库,有没有办法将新表添加到数据库?

package org.example.sqldemo;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.provider.BaseColumns;
import android.util.Log;

/** Helper to the database, manages versions and creation */
public class EventDataSQLHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "events.db";
    private static final int DATABASE_VERSION = 1;

    // Table name
    public static final String TABLE = "events";

    // Columns
    public static final String TIME = "time";
    public static final String TITLE = "title";

    public EventDataSQLHelper(Context context) { …
Run Code Online (Sandbox Code Playgroud)

sql sqlite android

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

ListView在另一个ListView中

我要在垂直列表视图中创建一个水平列表视图.两个列表视图都可以包含任意数量的元素,并且两者都需要可滚动.

我将如何实现这一点,因为我已经读过android不支持列表视图层次结构.

谢谢 !

CUSTOM UI

android listview view custom-view

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

模块依赖 - Android Studio

我的项目M1,M2下有2个模块

Project
  - M1
  - M2
Run Code Online (Sandbox Code Playgroud)

早些时候,我把M1作为我的主要应用程序.然而,需要新的应用程序M2与M1共享许多常见的东西.所以,我创建了一个新模块M2,其中M1作为依赖.

为此,我修改了M1和M2的build.gradle,如下所示:

M2:

compile project(':M1')
Run Code Online (Sandbox Code Playgroud)

M1 :(改为图书馆)

apply plugin: 'com.android.library'
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用并引发错误:

Could not find property 'applicationVariants' on com.android.build.gradle.LibraryExtension_Decorated@6de81701.
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

android gradle

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

使用新的AndEngine

我最近开始使用AndEngine.我通过在线教程,视频讲座,买了Rick Rogers的书,但AndEngine的基本问题是它的所有学习资料都已过时,新版本的大部分软件包已经更改.

我尝试执行AndEngine示例,但由于它们是使用以前版本的AndEngine构建的,因此它们不适用于新库.我很困惑应该如何开始学习新的AndEngine,因为我找不到任何教程或示例!

如果你能为我提供一个以前版本的AndEngine的链接,那将是非常有用的,这样我就可以至少实现旧的例子了.任何更好的AndEngine替代品也将受到赞赏!

android andengine

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