下面列出了android.view.View#isActivated ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Turns on mute according to current state (if already on/off)
*
* @param view
*/
@OnClick(R.id.button_mute)
public void toggleMute(View view) {
Utilities.toggleViewActivation(view);
if (view.isActivated()) mMuteButton.setImageResource(R.drawable.ic_mic_off_black_24dp);
else mMuteButton.setImageResource(R.drawable.ic_mic_black_24dp);
mAudioManager.setMicrophoneMute(view.isActivated());
}
/**
* Changes the color of the icon according to button status (activated or not)
*
* @param view
*/
@OnClick({R.id.button_speaker, R.id.button_hold, R.id.button_mute})
public void changeColors(View view) {
ImageView imageButton = (ImageView) view;
if (view.isActivated())
imageButton.setColorFilter(ContextCompat.getColor(this, R.color.white));
else imageButton.setColorFilter(ContextCompat.getColor(this, R.color.soft_black));
}
@Override public void onDrawOver(@NonNull Canvas canvas, @NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
int childCount = parent.getChildCount();
if (childCount < 2) return;
RecyclerView.LayoutManager lm = parent.getLayoutManager();
float[] lines = new float[childCount * 4];
boolean hasDividers = false;
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.ViewHolder viewHolder = parent.getChildViewHolder(child);
if (!(viewHolder instanceof ProgressBarViewHolder)) {
boolean canDivide = toDivide == null || viewHolder.getClass() == toDivide;
if (canDivide) {
int position = parent.getChildAdapterPosition(child);
if (child.isActivated() || (i + 1 < childCount && parent.getChildAt(i + 1).isActivated())) {
continue;
}
if (position != (state.getItemCount() - 1)) {
lines[i * 4] = inset == 0 ? inset : inset + lm.getDecoratedLeft(child);
lines[(i * 4) + 2] = lm.getDecoratedRight(child);
int y = lm.getDecoratedBottom(child) + (int) child.getTranslationY() - height;
lines[(i * 4) + 1] = y;
lines[(i * 4) + 3] = y;
hasDividers = true;
}
}
}
}
if (hasDividers) {
canvas.drawLines(lines, paint);
}
}
@Override
public void onDrawOver(Canvas canvas, RecyclerView parent, RecyclerView.State state) {
int childCount = parent.getChildCount();
if (childCount < 2) return;
RecyclerView.LayoutManager lm = parent.getLayoutManager();
float[] lines = new float[childCount * 4];
boolean hasDividers = false;
for (int i = 0; i < childCount; i++) {
View child = parent.getChildAt(i);
RecyclerView.ViewHolder viewHolder = parent.getChildViewHolder(child);
if (viewHolder.getClass() == dividedClass) {
// skip if this *or next* view is activated
if (child.isActivated()
|| (i + 1 < childCount && parent.getChildAt(i + 1).isActivated())) {
continue;
}
lines[i * 4] = inset + lm.getDecoratedLeft(child);
lines[(i * 4) + 2] = lm.getDecoratedRight(child);
int y = lm.getDecoratedBottom(child) + (int) child.getTranslationY() - height;
lines[(i * 4) + 1] = y;
lines[(i * 4) + 3] = y;
hasDividers = true;
}
}
if (hasDividers) {
canvas.drawLines(lines, paint);
}
}
@Override
public void onClick(View view) {
view.startAnimation(AnimationUtils.loadAnimation(getContext(), R.anim.nav_click));
switch (view.getId())
{
case R.id.nav_home:
Log.d(TAG, "HOME");
if(view.isActivated()) break;
manager.beginTransaction().replace(R.id.fragment, new HomeFragment()).commit();
setFocus(R.id.nav_home, view);
setDeFocus(prev_clicked_id, prev_view);
prev_clicked_id = R.id.nav_home;
prev_view = view;
break;
case R.id.nav_browse:
Log.d(TAG, "BROWSE");
if(view.isActivated()) break;
manager.beginTransaction().replace(R.id.fragment, new BrowseFragment()).commit();
setFocus(R.id.nav_browse, view);
setDeFocus(prev_clicked_id, prev_view);
prev_clicked_id = R.id.nav_browse;
prev_view = view;
break;
case R.id.nav_search:
Log.d(TAG, "SEARCH");
if(view.isActivated()) break;
SearchFragment.getFragmentInstance(manager, "SearchFragment");
setFocus(R.id.nav_search, view);
setDeFocus(prev_clicked_id, prev_view);
prev_clicked_id = R.id.nav_search;
prev_view = view;
break;
case R.id.nav_radio:
Log.d(TAG, "RADIO");
if(view.isActivated()) break;
manager.beginTransaction().replace(R.id.fragment, new RadioFragment()).commit();
setFocus(R.id.nav_radio, view);
setDeFocus(prev_clicked_id, prev_view);
prev_clicked_id = R.id.nav_radio;
prev_view = view;
break;
case R.id.nav_library:
Log.d(TAG, "LIBRARY");
if(view.isActivated()) break;
manager.beginTransaction().replace(R.id.fragment, new LibraryFragment()).commit();
setFocus(R.id.nav_library, view);
setDeFocus(prev_clicked_id, prev_view);
prev_clicked_id = R.id.nav_library;
prev_view = view;
break;
}
}