コード例 #1
0
  /** {@inheritDoc} */
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (DEBUG) Log.v(TAG, "onCreateView");

    resolveTheme();
    inflater = getThemeInflater(inflater);

    View v = inflater.inflate(R.layout.lb_guidedstep_fragment, container, false);
    ViewGroup guidanceContainer = (ViewGroup) v.findViewById(R.id.content_fragment);
    ViewGroup actionContainer = (ViewGroup) v.findViewById(R.id.action_fragment);

    Guidance guidance = onCreateGuidance(savedInstanceState);
    View guidanceView = mGuidanceStylist.onCreateView(inflater, guidanceContainer, guidance);
    guidanceContainer.addView(guidanceView);

    View actionsView = mActionsStylist.onCreateView(inflater, actionContainer);
    actionContainer.addView(actionsView);

    GuidedActionAdapter.EditListener editListener =
        new GuidedActionAdapter.EditListener() {
          @Override
          public void onGuidedActionEdited(GuidedAction action, boolean entering) {
            runImeAnimations(entering);
            if (!entering) {
              GuidedStepSupportFragment.this.onGuidedActionEdited(action);
            }
          }
        };

    mAdapter = new GuidedActionAdapter(mActions, this, this, editListener, mActionsStylist);

    mListView = mActionsStylist.getActionsGridView();
    mListView.setAdapter(mAdapter);
    int pos =
        (mSelectedIndex >= 0 && mSelectedIndex < mActions.size())
            ? mSelectedIndex
            : getFirstCheckedAction();
    mListView.setSelectedPosition(pos);

    return v;
  }
コード例 #2
0
  private void setActionView(View action) {
    mAdapter =
        new DialogActionAdapter(
            new Action.Listener() {
              @Override
              public void onActionClicked(Action action) {
                // eat events if action is disabled or only displays info
                if (!action.isEnabled() || action.infoOnly()) {
                  return;
                }

                /**
                 * If the custom lister has been set using {@link
                 * #setListener(DialogActionAdapter.Listener)}, use it. If not, use the activity's
                 * default listener.
                 */
                if (mListener != null) {
                  mListener.onActionClicked(action);
                } else if (getActivity() instanceof Action.Listener) {
                  Action.Listener listener = (Action.Listener) getActivity();
                  listener.onActionClicked(action);
                }
              }
            },
            new Action.OnFocusListener() {
              @Override
              public void onActionFocused(Action action) {
                if (getActivity() instanceof Action.OnFocusListener) {
                  Action.OnFocusListener listener = (Action.OnFocusListener) getActivity();
                  listener.onActionFocused(action);
                }
              }
            },
            mActions);

    if (action instanceof VerticalGridView) {
      mListView = (VerticalGridView) action;
    } else {
      mListView = (VerticalGridView) action.findViewById(R.id.list);
      if (mListView == null) {
        throw new IllegalStateException("No ListView exists.");
      }
      //            mListView.setWindowAlignment(VerticalGridView.WINDOW_ALIGN_NO_EDGE);
      //            mListView.setWindowAlignmentOffsetPercent(0.5f);
      //            mListView.setItemAlignmentOffset(0);
      //
      // mListView.setItemAlignmentOffsetPercent(VerticalGridView.ITEM_ALIGN_OFFSET_PERCENT_DISABLED);
      mListView.setWindowAlignmentOffset(0);
      mListView.setWindowAlignmentOffsetPercent(50f);
      mListView.setWindowAlignment(VerticalGridView.WINDOW_ALIGN_NO_EDGE);
      View selectorView = action.findViewById(R.id.selector);
      if (selectorView != null) {
        mSelectorAnimator = new SelectorAnimator(selectorView, mListView);
        mListView.setOnScrollListener(mSelectorAnimator);
      }
    }

    mListView.requestFocusFromTouch();
    mListView.setAdapter(mAdapter);
    mListView.setSelectedPosition(
        (mSelectedIndex >= 0 && mSelectedIndex < mActions.size())
            ? mSelectedIndex
            : getFirstCheckedAction());

    action.setTag(R.id.list, mListView);
    action.setTag(R.id.selector, action.findViewById(R.id.selector));
  }