【问题标题】:How to change navigation of custom sliding menu如何更改自定义滑动菜单的导航
【发布时间】:2014-03-04 07:34:52
【问题描述】:

我正在尝试我的自定义滑动导航。我知道已经有很多教程或库可用,但这是出于我自己的目的。

所以基本上我正在尝试打开滑动菜单,它正在打开 left to right 现在我想从 right to left 更改它的方向。我该怎么做。

下面是我的代码。

public class Profile extends Activity implements OnClickListener {

    private int windowWidth;
    boolean alreadyShowing = false;
    private Animation mAnimation;
    LayoutInflater mLayoutInflater;
    private RelativeLayout mRelativeLayout;

    ImageView sliding_menu;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.profile);

        Display display = getWindowManager().getDefaultDisplay();
        windowWidth = display.getWidth();
        display.getHeight();
        mLayoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

        sliding_menu = (ImageView) findViewById(R.id.slidingMenu);
        sliding_menu.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View arg0) {

                if (!alreadyShowing) {
                    alreadyShowing = true;
                    openSlidingMenu();
                }
            }
        });
    }

    private void openSlidingMenu() {

        int width = (int) (windowWidth * 0.8f);
        translateView((float) (width));
        int height = LayoutParams.FILL_PARENT;
        final View layout = mLayoutInflater.inflate(R.layout.settings,
                (ViewGroup) findViewById(R.id.setting));

        final PopupWindow optionsPopup = new PopupWindow(layout, width, height,
                true);
        optionsPopup.setBackgroundDrawable(new PaintDrawable());
        optionsPopup.showAtLocation(layout, Gravity.NO_GRAVITY, 0, 0);
        optionsPopup.setOnDismissListener(new PopupWindow.OnDismissListener() {
            public void onDismiss() {
                cleanUp();
                translateView(0);
                cleanUp();
                alreadyShowing = false;
            }
        });
    }

    private void translateView(float right) {
        mAnimation = new TranslateAnimation(0f, right, 0f, 0f);
        mAnimation.setDuration(100);
        mAnimation.setFillEnabled(true);
        mAnimation.setFillAfter(true);

        mRelativeLayout = (RelativeLayout) findViewById(R.id.profile);
        mRelativeLayout.startAnimation(mAnimation);
        mRelativeLayout.setVisibility(View.VISIBLE);
    }

    private void cleanUp() {
        if (null != mRelativeLayout) {
            mRelativeLayout.clearAnimation();
            mRelativeLayout = null;
        }
        if (null != mAnimation) {
            mAnimation.cancel();
            mAnimation = null;
        }
    }

所以基本上你可以在上图中看到我的菜单是从left to right 打开的,我该如何从right to left 更改它。

提前谢谢你。

【问题讨论】:

标签: android slidingmenu android-sliding


【解决方案1】:

我已经解决了这个问题,我刚刚将重力更改为下面这条线的右侧,它现在正在工作。

optionsPopup.showAtLocation(layout, Gravity.RIGHT, 0, 0);

所以在更改之前我的代码是这样的。

final PopupWindow optionsPopup = new PopupWindow(layout, width, height,true);
optionsPopup.setBackgroundDrawable(new PaintDrawable());
optionsPopup.showAtLocation(layout, Gravity.NO_GRAVITY, 0, 0);

现在就像下面

final PopupWindow optionsPopup = new PopupWindow(layout, width, height,true);
optionsPopup.setBackgroundDrawable(new PaintDrawable());
optionsPopup.showAtLocation(layout, Gravity.RIGHT, 0, 0);

谢谢大家帮助我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多