小编Vis*_*das的帖子

当android:windowTranslucentStatus = true时,键盘隐藏EditText

我们在我们的应用程序中应用了新的Android KitKat半透明主题,当键盘出现时,我们遇到了一个奇怪的问题.如果我们不使用新android:windowTranslucentStatus属性,则所有内容都照常工作:屏幕调整大小,并且所有内容都保持可见.但是当我们使用时android:windowTranslucentStatus,屏幕不会调整大小,我们EditText会被键盘隐藏.

问题的一个示例: http://fewlaps.com/xtra/quitnowStackoverflow.png

屏幕之间的唯一区别在于样式中的属性:

第一个屏幕: <item name="android:windowTranslucentStatus">false</item>

第二个屏幕: <item name="android:windowTranslucentStatus">true</item>

我们认为这是Kitkat发布的一个错误,但我们希望您了解这一点.我们有点生气了.当然,如果有人有解决方案,那将是惊人的.

编辑:我刚刚将此问题添加到Android问题跟踪器.您可能有兴趣主演此问题:https://issuetracker.google.com/issues/36986276

android android-softkeyboard android-4.4-kitkat

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

Android Studio - 从GitHub结帐a*branch*

我们在GitHub有一个回购,它有3个分支.例如,说主人,开发人员预览.

当我在Android Studio中检出这个仓库时,它似乎只检查分支,忽略所有其他分支.(当我们从GitHub克隆一个repo时,Eclipse曾经问过我们要检查/导入哪个分支)

问题是:我们如何在检查到Android Studio的回购时选择一个分支?

图1-从GitHub退房

从GitHub退房

图2-它只是要求repo URL,但不是分支.

它只是要求repo URL,但******分支.

git android github intellij-idea android-studio

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

Kotlin协同程序如何在内部工作?

Kotlin如何在内部实现协同程序?

Coroutines被称为线程的"更轻版本",我知道它们在内部使用线程来执行协程.

当我使用任何构建器函数启动协程时会发生什么?

这是我对运行此代码的理解:

GlobalScope.launch {       <---- (A)
    val y = loadData()     <---- (B)  // suspend fun loadData() 
    println(y)             <---- (C)
    delay(1000)            <---- (D)
    println("completed")   <---- (E)
}
Run Code Online (Sandbox Code Playgroud)
  1. Kotlin ThreadPool在开始时有一个预定义.
  2. (A),Kotlin开始在下一个可用的免费线程中执行协程(Say Thread01).
  3. (B),Kotlin停止执行当前线程,并loadData()在下一个可用的空闲线程(Thread02)中启动挂起功能.
  4. (B)执行后返回时,科特林延续了协程的下一个可用的空闲线程(Thread03).
  5. (C)执行Thread03.
  6. (D),Thread03停止.
  7. 在1000ms之后,(E)在下一个免费线程上执行,比方说Thread01.

我理解正确吗?或者协程以不同的方式实现?

kotlin kotlin-coroutines

14
推荐指数
2
解决办法
3012
查看次数

通过Web界面在Gitlab repo中创建一个目录

在自托管的GitLab安装中,我们如何通过Web界面在存储库中创建新目录

在GitHub Web界面中,我们可以通过给出如下文件名来创建一个新目录:

/new-dir-name/new-file-name.md
Run Code Online (Sandbox Code Playgroud)

..which将创建一个名为的新目录并将new-dir-name/文件new-file-name.md放入其中.

但这不适用于GitLab 通过Web界面.我们应该怎么做?

(很明显,我们无法在git仓库中创建空目录.)

git version-control github gitlab

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

屏幕旋转后,findFragmentById() 返回一个片段,即使布局内没有这样的 ID

我有两种方向的一种布局 - 1 个横向和 1 个纵向。

/layout-land/main.xml有两个片段:

  • <fragment android:id="@+id/fragment1" .. />
  • <fragment android:id="@+id/fragment2" .. />

/layout/main.xml只有一个片段:

  • <fragment android:id="@+id/fragment1" .. />

这是MainActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    firstFragment = (FirstFragment) getFragmentManager().findFragmentById(R.id.fragment1);
    secondFragment = (SecondFragment) getFragmentManager().findFragmentById(R.id.fragment2);
}
Run Code Online (Sandbox Code Playgroud)

接下来,我开始MainActivity.java横向模式。在这种情况下,

  • 和 均firstFragmentsecondFragment布局中的片段layout-land/main.xml

然后我将屏幕旋转到纵向layout/main.xml模式,并且应该加载布局文件。在这种情况下,

  • firstFragment指的是R.id.fragment1
  • secondFragment指的是不存在的片段。访问其中的任何元素都会引发 NullPointerException。(更准确地说,secondFragment不在这里 null

secondFragment当布局内没有定义片段时,如何初始化它?


编辑:在 Android 开发者文档中找到的原因: http://developer.android.com/training/basics/fragments/creating.html

当配置更改导致托管这些片段的活动重新启动时,其新实例可能会使用不同的布局,该布局不包含与先前布局相同的片段。在这种情况下,所有先前的片段仍将被实例化并在新实例中运行。但是,任何不再与视图层次结构中的标记关联的视图都不会创建其内容视图,并且会从 isInLayout() 返回 false。(此处的代码还展示了如何确定放置在容器中的片段是否不再在该容器的布局中运行,并避免在这种情况下创建其视图层次结构。)

android android-layout android-fragments

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

Linkedin API:accessTokenValue没有值,并且“未设置访问令牌”错误

    public void signInWithLinkedIn(View view) {
        //First check if user is already authenticated or not and session is valid or not
        if (!LISessionManager.getInstance(this).getSession().isValid()) {
            //if not valid then start authentication
            LISessionManager.getInstance(getApplicationContext()).init(LinkedInActivity.this, buildScope()//pass the build scope here
                    , new AuthListener() {
                        @Override
                        public void onAuthSuccess() {
                            // Authentication was successful. You can now do
                            // other calls with the SDK.
                            Toast.makeText(LinkedInActivity.this, "Successfully authenticated with LinkedIn.", Toast.LENGTH_SHORT).show();

                            //on successful authentication fetch basic profile data of user
                            //LISessionManager.getInstance(getApplicationContext()).clearSession();
                            fetchBasicProfileData();
                        }

                        @Override
                        public void onAuthError(LIAuthError …
Run Code Online (Sandbox Code Playgroud)

android linkedin

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

java中的动态数组

我想做的是

...
int sum[];
...
for(int z.....){
   ...
   sum[z] = some_random_value;
   ...
}
Run Code Online (Sandbox Code Playgroud)

但它给出了一个错误,sum[z]=ran;即变量sum可能尚未初始化.

我试过int sum[] = 0;而不是,int sum[];但即便是错误.(我基本上是一名C程序员)

java arrays

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

难道 Flow.collect() 会阻塞 UI?

我正在 kotlinlang.org 上阅读有关流程的文章:https ://kotlinlang.org/docs/flow.html

他们展示了下一个例子:

fun simple(): Flow<Int> = flow { 
   println("Flow started")
   for (i in 1..3) {
       delay(100)
       emit(I)
   }
}

fun main() = runBlocking<Unit> {
   println("Calling simple function...")
   val flow = simple()
   println("Calling collect...")
   flow.collect { value -> println(value) } 
   println("Calling collect again...")
   flow.collect { value -> println(value) } 
}
Run Code Online (Sandbox Code Playgroud)

他们说输出是:

Calling simple function...

Calling collect...
Flow started

1

2

3

Calling collect again...

Flow started

1

2

3
Run Code Online (Sandbox Code Playgroud)

因此,UI 线程似乎正在等待第一个flow.collect函数完成,然后再继续打印“再次调用收集...”

我希望当第一个流程构建器运行时,系统将打印“再次调用收集...”,因此输出将是:

Calling simple function... …
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines kotlin-flow

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