小编Ste*_*oen的帖子

Android L波纹触控效果如何?

我有一个带有高程的圆角矩形,可以投射阴影,就像这里的例子一样:http://developer.android.com/preview/material/views-shadows.html#shadows

这是我的形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@android:color/white" />
    <corners android:radius="6dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

我希望获得其他所有内容的漂亮"涟漪"触摸效果,但是如果将其设置为视图的背景,则不会给出触摸反馈.形状保持白色.

所以,我把它变成了layer-list:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android"
            android:shape="rectangle">
            <solid android:color="@android:color/white" />
            <corners android:radius="6dp" />
        </shape>
    </item>
    <item android:drawable="?android:selectableItemBackground" />
</layer-list>
Run Code Online (Sandbox Code Playgroud)

现在,当我点击它时,我得到了很好的触摸反馈,但是有一个问题.

圆角矩形的轮廓丢失了.它仍然可以将白色圆角矩形绘制得很精细,但是阴影会被渲染为非圆角矩形(方形边缘),并且波纹会一直延伸到角落之外:

坏角落

它在这里看起来并不太可怕,但在设备上它非常丑陋和令人反感.

有没有办法来解决这个问题?Outline第一个链接的部分似乎是我想要的,但我无法弄清楚如何实现它.

android android-5.0-lollipop

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

Firebase远程配置:无法读取任何值,但获取成功

我正在尝试使用Firebase的新远程配置功能来获取远程配置参数,我遇到了问题.

这是我的远程配置控制台: 远程配置控制台

我正在我的应用程序中进行获取和更新onCreate():

final FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
remoteConfig.fetch().addOnCompleteListener(new OnCompleteListener<Void>() {
    @Override
    public void onComplete(@NonNull Task<Void> task) {
        if (task.isSuccessful()) {
            remoteConfig.activateFetched();
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这就是我读它的方式:

FirebaseRemoteConfig remoteConfig = FirebaseRemoteConfig.getInstance();
String value = remoteConfig.getString("active_subscriptions");
Run Code Online (Sandbox Code Playgroud)

值返回null.

如果我打电话remoteConfig.getInfo().getLastFetchStatus(),它会返回LAST_FETCH_STATUS_SUCCESS,所以看起来fetch成功了.

知道为什么我的价值是空白的吗?

android firebase firebase-remote-config

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

处理操作栏按钮的正确方法?

我使用ActionBarSherlock(虽然我不认为这很重要).

我有一个主要活动和一个关于活动.我希望About活动通过其徽标显示后箭头,并执行适当的动画等.我不知道如何正确地做到这一点.

目前,我在onOptionsMenuItemSelected下按下Up/Home按钮时启动Main活动,但是它很hacky并且不能正常工作.它播放错误的动画,并且处理多任务处理不佳.

我该如何正确设置?

这是我的Main活动中启动About的部分:

Intent aboutIntent = new Intent(MainActivity.this, About.class);
MainActivity.this.startActivity(aboutIntent);
Run Code Online (Sandbox Code Playgroud)

这是我的关于活动:

package com.stevenschoen.test;

import android.content.Intent;
import android.os.Bundle;

import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.MenuItem;

public class About extends SherlockActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.about);

        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
    }

    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

            case android.R.id.home:
                // app icon in action bar clicked; go home
                Intent intentHome = new Intent(this, MainActivity.class);
                intentHome.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intentHome);
                return true;

            default:
                return super.onOptionsItemSelected(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java android android-actionbar

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

如何正确扩展布局类?

我想制作一个自定义RelativeLayout,但我一直收到这个错误:

08-01 02:28:19.385: E/AndroidRuntime(9989): FATAL EXCEPTION: main
08-01 02:28:19.385: E/AndroidRuntime(9989): android.view.InflateException: Binary XML     file line #1: Error inflating class com.stevenschoen.putio.CheckableRelativeLayout
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     android.view.LayoutInflater.createView(LayoutInflater.java:596)
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     android.view.LayoutInflater.inflate(LayoutInflater.java:466)
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     android.view.LayoutInflater.inflate(LayoutInflater.java:396)

...

08-01 02:28:19.385: E/AndroidRuntime(9989): Caused by: java.lang.NoSuchMethodException:     <init> [class android.content.Context, interface android.util.AttributeSet]
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     java.lang.Class.getConstructorOrMethod(Class.java:460)
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     java.lang.Class.getConstructor(Class.java:431)
08-01 02:28:19.385: E/AndroidRuntime(9989):     at     android.view.LayoutInflater.createView(LayoutInflater.java:561)
Run Code Online (Sandbox Code Playgroud)

这是我的班级:

public class CheckableRelativeLayout extends RelativeLayout implements
        Checkable {

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

android android-layout

25
推荐指数
2
解决办法
8231
查看次数

如何告诉我的自定义FragmentPagerAdapter停止销毁我的碎片?

我有一个带有FragmentPagerAdapter的ViewPager,我的应用程序之前只使用了两个片段(不同类型)而没有问题.

我刚刚添加了第三个片段,现在我的适配器/ viewpager似乎在我远离它们时会破坏我的碎片.例如,如果我在第1页,第3页将被销毁并在我接近它时重新创建.如果我在第3页,第1页也是如此.

这在我的应用中引起了很多问题.片段根本不是RAM很重,所以我怎么能阻止这种情况发生呢?

android android-fragments android-viewpager

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

GSON:期待一个字符串,但是BEGIN_OBJECT?

我正在尝试使用GSON来解析一些非常简单的JSON.这是我的代码:

    Gson gson = new Gson();

    InputStreamReader reader = new InputStreamReader(getJsonData(url));
    String key = gson.fromJson(reader, String.class);
Run Code Online (Sandbox Code Playgroud)

这是从url返回的JSON:

{
  "access_token": "abcdefgh"
}
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外:

E/AndroidRuntime(19447): com.google.gson.JsonSyntaxException:     java.lang.IllegalStateException: Expected a string but was BEGIN_OBJECT at line 1 column 2
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我是GSON的新手.

android json gson

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

自定义过度滚动发光/边缘颜色为ListView?

我有一个ListView自定义样式,基本上看起来就像Holo,但有黄色的口音而不是蓝色.

当我滚动到列表的底部或顶部时,我得到了不合适的蓝色.我为overscroll_glow.png和制作了自定义绘图overscroll_edge.png,但我不知道如何使用它们.

我怎样才能让我ListView使用这些drawable而不是系统的drawable?

请问OverScroller类的帮助?

android android-widget android-layout android-listview

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

布局在屏幕旋转时复制自身

我有一个具有EditText和Button的布局.我<include>在我的主要布局中.

我在布局和旋转方面遇到了一个奇怪的问题.当设备(物理)旋转时,它似乎会复制自身,弄乱文本和布局.

在我添加一些额外的乱码后,它首先打开:

1

DSC_0013位于片段启动时的EditText中.

然后,我旋转手机并添加一些不同的乱码:

2

你可以很清楚地看到这个问题.起初,我认为只是EditText搞砸了.但是,如果我添加足够的文字来创建一个新行:

3

我可以看到按钮也搞砸了.

我覆盖onSaveInstanceState,但在其中我不触及EditText或其值,它严格用于其他东西.

发生了什么,我该如何解决?

android android-layout android-edittext

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

Toast的自定义动画进入/退出?

我想让我的Toast的入口和出口动画定制.具体来说,我想让它立即出现(没有淡入)并像正常一样消失(淡出).

有没有办法可以用toast动画?

android android-animation

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

RxJava:如何创建一次获取和重用的Observable?

在每个应用程序启动时,我都有一个Retrofit Observable,用于从服务器获取用户的用户名.我想为每个后续订阅者使用此值,但似乎每次调用subscribe()时,都会从网络中重新获取该值.由于用户名在应用程序的生命周期中不太可能发生变化,因此我不会重新创建Observable对象,只会实例化一次.

我希望它如何工作是:

创建一次Observable

获取用户名一次,将该值保存在Observable中

在订阅时,使用该保存的值,或者如果未完成提取,则等待获取它

我该怎么办呢?

java android rx-java

9
推荐指数
2
解决办法
2936
查看次数