小编4nt*_*ine的帖子

如何确定片段何时在ViewPager中可见

问题:片段onResume()ViewPager片段实际可见之前被触发.

例如,我有2个片段与ViewPagerFragmentPagerAdapter.第二个片段仅供授权用户使用,我需要让用户在片段可见时登录(使用警告对话框).

但是ViewPager当第一个片段可见时创建第二个片段,以便缓存第二个片段,并在用户开始滑动时使其可见.

因此,onResume()事件在第二个片段变为可见之前就被触发了.这就是为什么我试图找到一个事件,当第二个片段变得可见时,它会在适当的时刻显示一个对话框.

如何才能做到这一点?

android android-fragments android-viewpager

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

如何修复Android中偏移YYY的Unmarshalling未知类型代码XXX?

由于Unmarshalling异常,我正在恢复应用程序崩溃.我检查了所有Seri​​alizables都没有参数的构造函数,甚至使用ObjectStream检查了所有可序列化(保存到文件并从文件加载).我如何理解导致异常的parcelable偏移的实际类类型:

Parcel android.os.Parcel@42209460: Unmarshalling unknown type code
 2131165303 at offset 3748
         at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2080)
         at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2105)
         at android.app.ActivityThread.access$600(ActivityThread.java:136)
         at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1201)
         at android.os.Handler.dispatchMessage(Handler.java:99)
         at android.os.Looper.loop(Looper.java:137)
         at android.app.ActivityThread.main(ActivityThread.java:4876)
         at java.lang.reflect.Method.invokeNative(Native Method)
         at java.lang.reflect.Method.invoke(Method.java:511)
         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:804)
         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:571)
         at com.kdgdev.xtension.core.XtensionMain.main(XtensionMain.java:91)
         at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.RuntimeException: Parcel android.os.Parcel@42209460: Unmarshalling unknown type code 2131165303
 at offset 3748
         at android.os.Parcel.readValue(Parcel.java:2032)
         at android.os.Parcel.readSparseArrayInternal(Parcel.java:2255)
         at android.os.Parcel.readSparseArray(Parcel.java:1687)
         at android.os.Parcel.readValue(Parcel.java:2022)
         at android.os.Parcel.readMapInternal(Parcel.java:2226)
         at android.os.Bundle.unparcel(Bundle.java:223)
         at android.os.Bundle.getSparseParcelableArray(Bundle.java:1232)
        at com.android.internal.policy.impl.PhoneWindow.restoreHierarchyState(PhoneWindow.java:1690)
         at android.app.Activity.onRestoreInstanceState(Activity.java:999)
         at com.actionbarsherlock.app.SherlockFragmentActivity.onRestoreInstanceState(Unknown
 Source)
         at name.myname.android.app.ui.MainActivity.onRestoreInstanceState(Unknown
 Source)
         at android.app.Activity.performRestoreInstanceState(Activity.java:971)
         at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1130) …
Run Code Online (Sandbox Code Playgroud)

serialization android marshalling unmarshalling parcelable

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

如何使用ConstraintLayout查看"wrap_content但不大于"?

我连续3个视图:标题,版本和imageview(作为按钮工作):

  1. 标题应该是wrap_content尊重以下规则
  2. 版本应该是wrap_content标题的右侧和imageview的左侧
  3. imageview具有固定大小,位于父级的右上角

在此输入图像描述

问题是如果标题太大,版本移动到右边并且规则"版本在imageview左侧"不受尊重:

在此输入图像描述

所以我需要限制标题宽度并使版本可见而不是向右移动.

这是XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:background="#b3b2b2">

    <!--  -->
    <TextView
        android:id="@+id/LibraryWithVersionItem.title"
        android:layout_width="0dp"
        android:textStyle="bold"
        android:textSize="@dimen/fontSize18"
        android:textColor="@color/mySecondaryDarkColor"
        android:layout_height="wrap_content"
        android:ellipsize="middle"
        tools:text="ExampleLibrary 01234567890123456789012345"
        app:layout_constraintTop_toTopOf="parent"
        android:layout_marginTop="8dp"
        android:layout_marginLeft="8dp"
        app:layout_constraintLeft_toLeftOf="parent"
        />

    <Spinner
        android:id="@+id/LibraryWithVersionItem.versions"
        android:layout_width="wrap_content"
        android:layout_height="0dp"
        android:textSize="@dimen/fontSize16"
        android:textColor="@color/mySecondaryDarkColor"
        tools:listitem="@layout/library_version"
        android:layout_marginTop="@dimen/margin8"
        android:layout_marginLeft="@dimen/margin8"
        android:layout_marginRight="@dimen/margin8"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintLeft_toRightOf="@+id/LibraryWithVersionItem.title"
        app:layout_constraintRight_toLeftOf="@+id/LibraryWithVersionItem.info"
        app:layout_constraintHorizontal_bias="0.0"/>

    <TextView
        android:id="@+id/LibraryWithVersionItem.sentence"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintTop_toBottomOf="@id/LibraryWithVersionItem.title"
        tools:text="Some library description in one sentence\nbut two lines"
        android:layout_marginTop="@dimen/margin8"
        android:layout_marginLeft="@dimen/margin8"
        app:layout_constraintRight_toLeftOf="@+id/LibraryWithVersionItem.install"
        android:layout_marginRight="8dp"
        app:layout_constraintHorizontal_bias="0.0"/>

    <TextView
        android:id="@+id/LibraryWithVersionItem.isInstalled"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:text="@string/LibraryManager.installed"
        android:textColor="#1a7c1a"
        android:layout_marginTop="@dimen/margin8"
        android:layout_marginBottom="@dimen/margin8" …
Run Code Online (Sandbox Code Playgroud)

android android-constraintlayout

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

如何避免剥离Android应用程序的本机代码符号

我正在sigsegv 11使用本机代码,我需要避免剥离以了解什么是错误的.该应用程序使用库(aar),我能够避免使用'cmd-strip' 黑客攻击 aar .但是在apk中剥离版本.so仍然被使用,所以应用程序剥离符号,可能在transformNative_libsWithStripDebugSymbolForDebuggradle任务时.有什么改变可以避免吗?

PS.在SO上发现了类似的问题,但它有点不同(在我的情况下使用aar而不是剥离的符号).

android stripping gradle android-ndk

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

如何估算在应用中使用AdMob的潜在收入?

这时我在Android应用程序中几乎没有付费功能.我想估算在应用中使用AdMob广告的潜在收入,并选择最佳策略:付费功能或广告.

android ads in-app-purchase admob in-app-billing

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

如何修复Android BLE SCAN_FAILED_APPLICATION_REGISTRATION_FAILED错误?

大多数时候它工作得很好但有时我在尝试发现BLE设备时遇到此错误:

02-12 18:00:41.952  16178-16339/com.icrealtime.allie W/BleRpcConnectionFactory? Starting discovery
02-12 18:00:41.955  16178-16339/com.icrealtime.allie D/BluetoothAdapter? STATE_ON
02-12 18:00:41.957  24342-18813/? D/BtGatt.GattService? registerClient() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6
02-12 18:00:41.957  24342-24384/? E/bt_btif? Register with GATT stack failed.
02-12 18:00:41.957  24342-24384/? E/bt_btif? Register with GATT stack failed.
02-12 18:00:41.957  24342-24370/? D/BtGatt.GattService? onClientRegistered() - UUID=c4a4c56d-1d10-4615-9c8d-44971bc3d6e6, clientIf=0
02-12 18:00:41.958  16178-16190/com.icrealtime.allie D/BluetoothLeScanner? onClientRegistered() - status=133 clientIf=0
02-12 18:00:41.967  16178-16178/com.icrealtime.allie E/BleRpcConnectionFactory? BLE SCAN FAILED: 2
Run Code Online (Sandbox Code Playgroud)

错误代码2代表https://developer.android.com/reference/android/bluetooth/le/ScanCallback.html#SCAN_FAILED_APPLICATION_REGISTRATION_FAILED

它似乎是内部的android问题,但它可能会受到我的代码做错的影响.可能是什么原因以及如何解决它?

PS.Nexus 9,Android 6.0.1

android bluetooth-lowenergy

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

如何使用Google Maps android API v2获取我的位置更改事件?

如何使用Google Maps android API v2获取我的位置更改事件?

v1中,您可以执行下一步操作以处理位置更改事件:

public class MyLocationOverlay extends com.google.android.maps.MyLocationOverlay {

    /**
     * Listener
     */
    public interface Listener {
        void onLocationChanged(android.location.Location location);
    }

    private Listener listener;

    public MyLocationOverlay(Context context, MapView mapView, Listener listener) {
        super(context, mapView);

        this.listener = listener;
    }

    @Override
    public synchronized void onLocationChanged(Location location) {
        super.onLocationChanged(location);

        // fire listener
        if (listener != null)
            listener.onLocationChanged(location);
    }
}
Run Code Online (Sandbox Code Playgroud)

android google-maps geolocation

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

protobuf服务方法可以返回原始类型吗?

我正在尝试使用Google protobuf,我正在进行下一个描述:

message.proto文件:

message Request {
   required int32 id = 1;
   optional string value = 2;
}
Run Code Online (Sandbox Code Playgroud)

service.proto文件:

import "message.proto";

service Service {
    rpc request (Request) returns (bool);
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试生成c ++源代码并收到错误:

$ protoc service.proto --cpp_out =/tmp/proto/build

service.proto:4:40:预期的消息类型.

我是否必须仅返回用户定义的类型?是原始的(像boolstring)支持?我可以使用原始类型作为服务方法参数(而不是Request在我的示例中)吗?

rpc protocol-buffers protobuf-c

15
推荐指数
3
解决办法
7165
查看次数

如何将Android上的视频录制到Stream中

Android MediaRecorder允许将视频保存到文件(文件或套接字):

setOutputFile(FileDescriptor fd);
setOutputFile(String path)
Run Code Online (Sandbox Code Playgroud)

如何将视频数据保存到OutputStream?它将用于流式视频录制.

media android stream mediarecorder

12
推荐指数
2
解决办法
9000
查看次数

CMake错误:无法创建命名生成器XCode

我从官方git存储库检查了llvm/clang/compiler-rt源代码,但我有:

MBA-Anton:llvm_34_xcode_build asmirnov$ cmake -G XCode ../llvm_34
CMake Error: Could not create named generator XCode
Run Code Online (Sandbox Code Playgroud)

LLVM来源:

MBA-Anton:llvm_34_xcode_build asmirnov$ ls ../llvm_34
CMakeLists.txt      Makefile.common     cmake           llvm.spec.in
CODE_OWNERS.TXT     Makefile.config.in  configure       projects
CREDITS.TXT     Makefile.rules      docs            test
LICENSE.TXT     README.txt      examples        tools
LLVMBuild.txt       autoconf        include         unittests
Makefile        bindings        lib         utils
Run Code Online (Sandbox Code Playgroud)

Cmake版本:

MBA-Anton:llvm_34_xcode_build asmirnov$ cmake -version
cmake version 2.8.11.1
Run Code Online (Sandbox Code Playgroud)

根据doc和输出,该cmake版本应支持Xcode生成器:

MBA-Anton:llvm_34_xcode_build asmirnov$ cmake --help
...

Generators

The following generators are available on this platform:
  Unix Makefiles              = Generates standard UNIX makefiles.
  Ninja                       = Generates build.ninja …
Run Code Online (Sandbox Code Playgroud)

xcode cmake llvm clang

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