我Floating Action Button
使用以下代码更改了backgroundTintList颜色:
fab.setBackgroundTintList(ColorStateList.valueOf(mResources.getColor(R.color.fab_color)));
Run Code Online (Sandbox Code Playgroud)
但我最终在API 4.4.2上获得以下内容:
API 21上的一切看起来都很好<=但是除了API 21以外的任何东西,我对FAB都有这个问题.
我是以编程方式创建FAB,如下所示:
FloatingActionButton fab = new FloatingActionButton(this);
CoordinatorLayout.LayoutParams layoutParams = new CoordinatorLayout.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
fab.setLayoutParams(layoutParams);
layoutParams.rightMargin = mResources.getDimensionPixelSize(R.dimen.activity_horizontal_margin);
((CoordinatorLayout) findViewById(R.id.coordinatorLayout)).addView(fab);
CoordinatorLayout.LayoutParams p = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
p.setAnchorId(R.id.appBarLayout);
p.anchorGravity = Gravity.BOTTOM | Gravity.END;
fab.setLayoutParams(p);
fab.setVisibility(View.VISIBLE);
fab.setBackgroundTintList(ColorStateList.valueOf(mResources.getColor(R.color.fab_color)));
fab.setImageDrawable(getResources().getDrawable(R.drawable.ic_button));
Run Code Online (Sandbox Code Playgroud)
我也正好由官方来运行源代码的FloatingActionButton
,我看到他们在这里实例化一个borderDrawable:
@Override
void setBackgroundDrawable(Drawable originalBackground, ColorStateList backgroundTint,
PorterDuff.Mode backgroundTintMode, int rippleColor, int borderWidth) {
// Now we need to tint the original background with the tint
mShapeDrawable = DrawableCompat.wrap(originalBackground.mutate());
DrawableCompat.setTintList(mShapeDrawable, backgroundTint); …
Run Code Online (Sandbox Code Playgroud) 我正在使用以下内容Spannable
并且TextView
像这样,我已经让它为每个角色制作动画,但我想为每个单词制作动画,我该如何实现?
寻找alpha并翻译每个单词(从每个单词的位置底部).
通过翻译我的意思是翻译(移动)动画.
资源:
private static class FadeyTextView extends TextView
{
private Interpolator mInterpolator;
private long mStart, mDurationPerLetter;
private boolean mAnimating = false;
private SpannableString mFadeyText;
private CharSequence mText;
public FadeyTextView(Context context)
{
super(context);
initView();
}
public FadeyTextView(Context context, AttributeSet attrs)
{
super(context, attrs);
initView();
}
public FadeyTextView(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
initView();
}
private void initView()
{
// Set defaults
mInterpolator = new DecelerateInterpolator();
mDurationPerLetter = 250;
}
public void …
Run Code Online (Sandbox Code Playgroud) 我正在应用ColorFilter,Drawable
我想知道是否可以改变drawable的颜色但保留阴影.
像这样的东西:
如果您应用了以下内容:
view.getBackground().setColorFilter(new PorterDuffColorFilter(itemView.getResources().getColor(R.color.green_500), PorterDuff.Mode.SRC_IN);
Run Code Online (Sandbox Code Playgroud)
它会应用ColorFilter
但保留阴影和alpha值.
我怎样才能做到这一点?
考虑以下集合和对象:
Observable.from(users); // Where users = List<User> and each user has a userId
Observable.just(location); // Where location has id, userId, coordinates
Run Code Online (Sandbox Code Playgroud)
我想要做的是迭代用户列表,并在第一次遇到location.userId.equals(user.userId);
数据库中查询的地方时,返回一个组合对象.如果userId
s不匹配则移动到下一个用户.并在找到1匹配后终止循环.
我怎样才能用RxJava实现这个目标?
我最初想过要用:
Observable.zip(Observable.from(users), Observable.just(location), new Func2<User, Location, UserLocation>() { ... });`
Run Code Online (Sandbox Code Playgroud)
有没有人有更好的选择?
我想也许我可以用一个简单的解决方案解决这个问题,但好吧我会更清楚地解释一切.
所以,一旦我拥有location.userId
,user.userId
我还需要查询一个数据库,该数据库将返回一个Observable<Boolean>
指示它是否也在我们的数据库中为真的数据库.如果该条件匹配,那么我返回一个组合对象.
所以整个流程看起来像这样:
for each user in Users {
checkIfAlreadyExistsInDatabase(user.userId, location.userId) // Returns Observable<Boolean>
// If exists in db AND user.userId == location.userId return combined object and terminate the loop
}
Run Code Online (Sandbox Code Playgroud)
这是以前同步完成的,RxJava
我没有将方法转换checkIfAlreadyExistsInDatabase …
在使用API 21及更高版本的Nexus 5上,一切正常,但在使用API 4.2.2的旧版三星设备上,我在SwipeRefreshLayout中遇到以下错误.
有没有遇到类似的人?
当我下拉刷新刷新冻结时,直到我开始向上滚动.
这是一个非常不受欢迎的问题,但是它会与新支持库更新中出现的问题有关吗?我目前正在使用以下支持库:
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:support-v4:22.2.1'
compile 'com.android.support:cardview-v7:22.2.1'
compile 'com.android.support:design:23.0.1'
compile 'com.android.support:palette-v7:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'
Run Code Online (Sandbox Code Playgroud)
这个问题在我的几个活动中发生,但作为一个例子,我实例化SwipeRefreshLayout
就像这样,没有什么不寻常的.它在里面Fragment
:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="?android:colorBackground"
android:orientation="vertical">
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeToRefresh"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.v7.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.v4.widget.SwipeRefreshLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我初始化之SwipeRefreshLayout
类的:
private void initSwipeRefreshLayout() {
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
mSwipeRefreshLayout.setRefreshing(true);
refreshContent();
}
});
mSwipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_bright,
android.R.color.holo_green_light,
android.R.color.holo_orange_light,
android.R.color.holo_red_light);
}
private void initRecyclerViewScrollListener() {
mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int …
Run Code Online (Sandbox Code Playgroud) 在iOS中,我可以像这样打电话
self.layer.shouldRasterize = YES;
Run Code Online (Sandbox Code Playgroud)
在光栅化视图方面,Android中是否有类似的东西,因此不能onDraw()
被一致地调用?
我希望阻止视图在a中一次又一次地绘制RecyclerView
以节省内存并优化以便更快地滚动.
寻找一些非常简单的东西。我在源代码中环顾四周,RecyclerView
但找不到任何东西。在我开始实现我自己的版本之前,我想知道是否有人知道接收notifyiteminserted
, notifyitemremoved
,的动画回调notifyitemmoved
?
这很重要,因为我想知道动画何时完成。
在Xcode中遇到这个问题,我尝试过的解决方案:
~/Library/Developer
我现在很茫然,有人能指出我正确的方向吗?我已经在这上面花了一整天的时间了。不过其他项目构建得很好。
我想保持我的应用程序薄.
问题:我想重用我的Fragment
类代码来创建3个不同的实例,ViewPager
其中有3个页面.每个Fragment
人都有不同的ImageView
背景Drawable
.关于此的最佳做法是什么?我注意到使用像这里的工厂方法似乎很好,还有其他选择吗?
我有一个Fragment
有以下方法:
Fragment.java
public static Fragment newInstance(Context context) {
FragmentTutorial f = new FragmentTutorial();
Bundle args = new Bundle();
return f;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment, null);
return root;
}
Run Code Online (Sandbox Code Playgroud)
我有一个ViewPagerAdapter类,它具有以下方法:
ViewPagerAdapter.java
public ViewPagerAdapter(Context context, FragmentManager fm) {
super(fm);
mContext = context;
}
@Override
public Fragment getItem(int position) {
return new FragmentTutorial().newInstance(mContext);
} …
Run Code Online (Sandbox Code Playgroud) 我猜测,不知何故,PredictionIO没有正确设置路径变量.
我使用方法2从此链接安装PredictionIO:PredictionIO
一切安装正确,但当我输入pio
它说命令未找到.这就是我所看到的:
当我尝试从finder启动pio时,我得到了这个:
有点失落,我在这里做错了什么?
我正在使用Model-View-Presenter设计模式和EventBus(Otto).我实现此模式的全部原因是仅将事件与演示者分离,并让演示者更新视图.
这是我所拥有的一些代码的示例,我将以get Events
为例.(请注意,Events
是从不同的EventBus
Event
,意味着Event
在Events
像"爸爸的生日"的事件,而是Event
在EventBus
一个公共汽车事件).
分段
public class EventFragment extends Fragment {
private EventPresenter mEventPresenter;
// Initialize boilerplate code...
private void init() {
mEventPresenter = new EventPresenter();
mEventPresenter.loadEvents();
}
// I WANT TO MOVE THESE SUBSCRIPTION METHODS TO
// MY PRESENTER OR SUBSCRIBER, BUT THEY ARE
// COUPLED TO THE ADAPTER OR A VIEW
@Subscribe
public void onEventsLoaded(EventsLoaded eventsLoaded) {
List<Event> events = eventsLoaded.getEvents();
mAdapter.setEvents(events);
}
@Subscribe
public …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将自定义字体主题设置为Android Studio,我正在尝试从Snow Leopard导入类似于Menlo的字体.我找到的字体是这个.
我不知道如何将.tff
文件导入Android Studio.
这就是我所说的:
如何将自定义字体导入Android Studio?
我有一个ViewPager
内部Activity
显示两个Fragments
.
活动有a TabLayout
和a CollapsingToolbarLayout
.所述CollapsingToolbarLayout
嵌套内的AppBarLayout
用ImageView
以产生视差效应.该TabLayout
是外AppBarLayout
内LinearLayout
使用ViewPager
.再有一个FrameLayout
,以及展现另一个Fragment
在ViewPager
当用户点击一个按钮来表明Fragment
.
问题是,当你滚动RecyclerView
里面的Fragment
是覆盖在上面ViewPager
的Activity
还滚动并执行视差效果.从本质上讲,它同时滚动RecyclerView
内部Fragment
和内部的内容ViewPager
.
当用户看到时,有没有办法停止滚动CollapsingToolbarLayout
并且仅滚动覆盖内容?Fragment
Fragment
这就是我的XML Hierarchy的样子:
<android.support.design.widget.CoordinatorLayout>
<android.support.design.widget.AppBarLayout>
<android.support.design.widget.CollapsingToolbarLayout
app:layout_scrollFlags="scroll|exitUntilCollapsed">
<ImageView
app:layout_collapseMode="parallax"/>
<android.support.v7.widget.Toolbar />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<LinearLayout
app:layout_behavior="@string/appbar_scrolling_view_behavior" >
<android.support.design.widget.TabLayout />
<!-- Two fragments inside ViewPager each containing a RecyclerView …
Run Code Online (Sandbox Code Playgroud) android android-fragments android-viewpager android-collapsingtoolbarlayout
android ×10
android-collapsingtoolbarlayout ×1
animation ×1
bash ×1
build ×1
cocoapods ×1
colorfilter ×1
command ×1
drawable ×1
editor ×1
event-bus ×1
fonts ×1
freeze ×1
ios ×1
java ×1
mvp ×1
operators ×1
otto ×1
predictionio ×1
rasterize ×1
rx-java ×1
spannable ×1
textview ×1
themes ×1
xcode9.4 ×1