我有一个带有高程的圆角矩形,可以投射阴影,就像这里的例子一样: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第一个链接的部分似乎是我想要的,但我无法弄清楚如何实现它.
我正在尝试使用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成功了.
知道为什么我的价值是空白的吗?
我使用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) 我想制作一个自定义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) 我有一个带有FragmentPagerAdapter的ViewPager,我的应用程序之前只使用了两个片段(不同类型)而没有问题.
我刚刚添加了第三个片段,现在我的适配器/ viewpager似乎在我远离它们时会破坏我的碎片.例如,如果我在第1页,第3页将被销毁并在我接近它时重新创建.如果我在第3页,第1页也是如此.
这在我的应用中引起了很多问题.片段根本不是RAM很重,所以我怎么能阻止这种情况发生呢?
我正在尝试使用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的新手.
我有一个ListView自定义样式,基本上看起来就像Holo,但有黄色的口音而不是蓝色.
当我滚动到列表的底部或顶部时,我得到了不合适的蓝色.我为overscroll_glow.png和制作了自定义绘图overscroll_edge.png,但我不知道如何使用它们.
我怎样才能让我ListView使用这些drawable而不是系统的drawable?
请问OverScroller类的帮助?
我有一个具有EditText和Button的布局.我<include>在我的主要布局中.
我在布局和旋转方面遇到了一个奇怪的问题.当设备(物理)旋转时,它似乎会复制自身,弄乱文本和布局.
在我添加一些额外的乱码后,它首先打开:

DSC_0013位于片段启动时的EditText中.
然后,我旋转手机并添加一些不同的乱码:

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

我可以看到按钮也搞砸了.
我覆盖onSaveInstanceState,但在其中我不触及EditText或其值,它严格用于其他东西.
发生了什么,我该如何解决?
我想让我的Toast的入口和出口动画定制.具体来说,我想让它立即出现(没有淡入)并像正常一样消失(淡出).
有没有办法可以用toast动画?
在每个应用程序启动时,我都有一个Retrofit Observable,用于从服务器获取用户的用户名.我想为每个后续订阅者使用此值,但似乎每次调用subscribe()时,都会从网络中重新获取该值.由于用户名在应用程序的生命周期中不太可能发生变化,因此我不会重新创建Observable对象,只会实例化一次.
我希望它如何工作是:
创建一次Observable
获取用户名一次,将该值保存在Observable中
在订阅时,使用该保存的值,或者如果未完成提取,则等待获取它
我该怎么办呢?