在我的应用程序中,我使用扩展或收缩AppBarLayout特定事件setExpanded(boolean, true).
我得到了一个很好的结果,使用了一个活泼动人的流体动画com.android.support:design:23.1.0,然后我更新到23.1.1了,动画变得非常缓慢而且根本没有活泼.
在源代码中android.support.design.widget.AppBarLayout,我将问题放在animateOffsetTo(下public static class Behavior extends HeaderBehavior<AppBarLayout>)中,在版本23.1.0中是这样的:
private void animateOffsetTo(final CoordinatorLayout coordinatorLayout,
final AppBarLayout child, int offset) {
if (mAnimator == null) {
mAnimator = ViewUtils.createAnimator();
mAnimator.setInterpolator(AnimationUtils.DECELERATE_INTERPOLATOR);
mAnimator.setUpdateListener(new ValueAnimatorCompat.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimatorCompat animator) {
setHeaderTopBottomOffset(coordinatorLayout, child,
animator.getAnimatedIntValue());
}
});
} else {
mAnimator.cancel();
}
mAnimator.setIntValues(getTopBottomOffsetForScrollingSibling(), offset);
mAnimator.start();
}
Run Code Online (Sandbox Code Playgroud)
在版本23.1.1中是这样的:
private void animateOffsetTo(final CoordinatorLayout coordinatorLayout,
final AppBarLayout child, final int offset) {
final …Run Code Online (Sandbox Code Playgroud) 我有一个自定义TextView,具有个性化的字体属性:
public class TextViewPlus extends TextView {
private static final String TAG = "TextViewPlus";
public TextViewPlus(Context context) {
super(context);
}
public TextViewPlus(Context context, AttributeSet attrs) {
// This is called all the time I scroll my ListView
// and it make it very slow.
super(context, attrs);
setCustomFont(context, attrs);
}
public TextViewPlus(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
setCustomFont(context, attrs);
}
private void setCustomFont(Context ctx, AttributeSet attrs) {
TypedArray a = ctx.obtainStyledAttributes(attrs, R.styleable.TextViewPlus);
String customFont = a.getString(R.styleable.TextViewPlus_customFont);
setCustomFont(ctx, …Run Code Online (Sandbox Code Playgroud) 新三星Galaxy S4具有和有趣的新类型的手势称为"的空气手势 "使用红外传感器来处理在屏幕的前面的用户的手移动,加入了" 预接触 '/’ 接近 "事件,在至极手指在触摸之前检测到.
我想在我的一个应用程序中使用这个" 浮动触摸 "事件.我在谷歌和三星开发者中心都搜索过,但我找不到任何关于它的API或信息.
API可用还是太早?有人有任何链接/信息吗?
http://www.samsung.com/global/microsite/galaxys4/lifetask.html#page=airview

我有一个处理图像的动态壁纸应用程序.我在Play商店中收到了一些崩溃报告(但没有在fabric.io中),这个堆栈跟踪:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'samsung/hero2ltexx/hero2lte:6.0.1/MMB29K/G935FXXU1APDN:user/release-keys'
Revision: '9'
ABI: 'arm64'
pid: 15250, tid: 15331, name: RenderThread >>> com.xxxx.xxxxx <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
Abort message: 'Encountered EGL error 12291 EGL_BAD_ALLOC during rendering'
x0 0000000000000000 x1 0000000000003be3 x2 0000000000000006 x3 0000000000000000
x4 0000000000000000 x5 0000000000000001 x6 0000000000000000 x7 0000000000000000
x8 0000000000000083 x9 fefeff7e6032ce0b x10 7f7f7f7f7f7fff7f x11 0101010101010101
x12 0000000000000010 x13 0000007f6f425bdc x14 …Run Code Online (Sandbox Code Playgroud) 在以下场景中:
public class ChatData {
@Embedded public ChatEntity chat;
@Relation(parentColumn = "chat_id", entityColumn = "chat_id", entity = MessageEntity.class) public List<MessageEntity> messages;
}
Run Code Online (Sandbox Code Playgroud)
使用 DAO:
@Dao
public interface JoinDAO {
@Transaction
@Query("SELECT * FROM chat")
List<ChatData> getChats();
}
Run Code Online (Sandbox Code Playgroud)
如何将 MessageEntity List 的选择限制为仅 n 行,而不是数据库中的所有行?有可能吗?
在这种情况下,消息实体列表可能非常大,每个聊天实体有数百个消息实体。我想获取所有 ChatEntity,但将选择限制为仅 10 个 MessageEntity。
我正在尝试使用smbclient put在远程复制期间显示进度条,可能使用pv或对话框,或任何其他选项.
smbclient-put命令工作正常:
smbclient //usbrouter/backup --user=myusername mypassword -c "put /media/DOC/BackupAuto/work_backup.tar.gz work_backup.tar.gz"
Run Code Online (Sandbox Code Playgroud)
但我找不到任何方式显示副本的进度.有人有解决方案/替代方案吗?
谢谢.
三星Galaxy S4具有“ 浮动触摸 ”功能,即使不触摸屏幕也可以检测到手指。
btn1当手指经过时,我想在按钮()上触发一个事件。
我尝试使用OnHoverListener,但是onHover在需要的事件MotionEventis MotionEvent.ACTION_HOVER_ENTER或MotionEvent.ACTION_HOVER_EXITor 时从未被调用MotionEvent.ACTION_HOVER_MOVE。
这是我的代码:
btn1.setOnHoverListener(new OnHoverListener() {
@Override
public boolean onHover(View v, MotionEvent event) {
Log.d("FloatingTouch", "onHover: "+event.getAction());
switch (event.getAction()) {
case MotionEvent.ACTION_HOVER_ENTER:
Log.d("FloatingTouch", "ACTION_HOVER_ENTER" );
return true;
case MotionEvent.ACTION_HOVER_MOVE:
Log.d("FloatingTouch", "ACTION_HOVER_MOVE" );
return true;
case MotionEvent.ACTION_HOVER_EXIT:
Log.d("FloatingTouch", "ACTION_HOVER_EXIT" );
break;
default:
break;
}
return false;
}
});
Run Code Online (Sandbox Code Playgroud)
我想念什么吗?也许需要许可?
我有一个片段列表,我必须放在ViewPager中(到目前为止没问题).
ArrayList<Fragment> fragmentList = new ArrayList<Fragment>();
fragmentList.add(new fragment1());
fragmentList.add(new fragment2());
fragmentList.add(new fragment3());
fragmentList.add(new fragment4());
FragmentAdapter mAdapter = new FragmentAdapter( mFragmentManager, fragmentList);
mPager = (ViewPager) view.findViewById(R.id.pager_items_list);
mPager.setCurrentItem(0);
mPager.setAdapter(mAdapter);
mPager.setOnPageChangeListener(pageChangeListener);
Run Code Online (Sandbox Code Playgroud)
适配器
public class FragmentAdapter extends FragmentStatePagerAdapter {
ArrayList<Fragment> fragmentsList;
public FragmentAdapter(FragmentManager fm, ArrayList<Fragment> fragmentsList) {
super(fm);
this.fragmentsList = fragmentsList;
}
@Override
public int getCount() {
return fragmentsList.size();
}
@Override
public Fragment getItem(int position) {
if (position<fragmentsList.size() & fragmentsList.get(position)!=null) {
return fragmentsList.get(position);
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要的是让ViewPager在屏幕上显示两个项目,但每次只滚动一个.
这张图片可以帮我解释一下我的意思:
