나는이 문제를 2 일 동안 풀어서 혼자서 풀려고 노력했다. 내 애플 리케이션 탐색 서랍을 가지고, 조각을 이해하기가 어렵습니다 싶습니다. 내 코드를 변경하고 싶지 않습니다. 나는 this 예제를 보았지만 많은 것을 이해하는 데 도움이되지 않습니다.조각없이 탐색 서랍을 구현할 수있는 방법이 있습니까?
난 그냥 서랍없이 탐색을 구현하는 방법을 모르겠다.
도움을 주시면 감사하겠습니다.
감사합니다.
나는이 문제를 2 일 동안 풀어서 혼자서 풀려고 노력했다. 내 애플 리케이션 탐색 서랍을 가지고, 조각을 이해하기가 어렵습니다 싶습니다. 내 코드를 변경하고 싶지 않습니다. 나는 this 예제를 보았지만 많은 것을 이해하는 데 도움이되지 않습니다.조각없이 탐색 서랍을 구현할 수있는 방법이 있습니까?
난 그냥 서랍없이 탐색을 구현하는 방법을 모르겠다.
도움을 주시면 감사하겠습니다.
감사합니다.
도움이되기를 바랍니다 메뉴 레이아웃은 왼쪽 슬라이드 이고 실제 레이아웃은 사용자가 볼 수있는 레이아웃입니다. 전체 레이아웃에 둘 다 포함됩니다. 은 내가
모든 최고의 :
코드 MainActivity.java
에 대한package com.example.slidemenuanimation;
import android.app.Activity;
import android.os.Bundle;
import android.view.Display;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
public class MainActivity extends Activity implements AnimationListener {
int ActualLayoutWidth, MenuLayoutWidth, TotalLayoutWidth;
RelativeLayout actualLayout, totalLayout;
LinearLayout menuLayout;
RelativeLayout.LayoutParams menuLayoutParams, actualLayoutParams;
FrameLayout.LayoutParams totallayoutParams;
ImageView menulayoutImage, actualLayoutImage;
TranslateAnimation MenuClickRightAnim, MenuClickLeftAnim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Display display = getWindowManager().getDefaultDisplay();
ActualLayoutWidth = display.getWidth();
MenuLayoutWidth = display.getWidth();
TotalLayoutWidth = ActualLayoutWidth + MenuLayoutWidth;
menuLayout = (LinearLayout) findViewById(R.id.menu_layout);
actualLayout = (RelativeLayout) findViewById(R.id.actuallayout);
totalLayout = (RelativeLayout) findViewById(R.id.totallayout);
// parmeters for total layout
totallayoutParams = new FrameLayout.LayoutParams(TotalLayoutWidth,
FrameLayout.LayoutParams.FILL_PARENT, 3);
totallayoutParams.setMargins(-MenuLayoutWidth, 0, 0, 0);
totalLayout.setLayoutParams(totallayoutParams);
// parmeters for menu layout
menuLayoutParams = new RelativeLayout.LayoutParams(MenuLayoutWidth,
RelativeLayout.LayoutParams.FILL_PARENT);
menuLayout.setLayoutParams(menuLayoutParams);
// parameters for actual layout
actualLayoutParams = new RelativeLayout.LayoutParams(ActualLayoutWidth,
RelativeLayout.LayoutParams.FILL_PARENT);
actualLayoutParams.addRule(RelativeLayout.RIGHT_OF, R.id.menu_layout);
actualLayout.setLayoutParams(actualLayoutParams);
// intializing animations
// menu moves right
MenuClickRightAnim = new TranslateAnimation(0, MenuLayoutWidth, 0, 0);
MenuClickRightAnim.setFillAfter(true);
MenuClickRightAnim.setAnimationListener(this);
MenuClickRightAnim.setDuration(750);
// menu moves left
MenuClickLeftAnim = new TranslateAnimation(0, -MenuLayoutWidth, 0, 0);
MenuClickLeftAnim.setAnimationListener(this);
MenuClickLeftAnim.setFillAfter(true);
MenuClickLeftAnim.setDuration(750);
// init widgets
menulayoutImage = (ImageView) findViewById(R.id.imagein_menulayout);
menulayoutImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
totalLayout.setAnimation(MenuClickLeftAnim);
totalLayout.startAnimation(MenuClickLeftAnim);
}
});
actualLayoutImage = (ImageView) findViewById(R.id.imagein_actuallayout);
actualLayoutImage.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
totalLayout.setAnimation(MenuClickRightAnim);
totalLayout.startAnimation(MenuClickRightAnim);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onAnimationEnd(Animation animation) {
if (animation == MenuClickRightAnim) {
// setting params for total layout because naimtion transfers raw
// pizels not actual layout
totalLayout.clearAnimation();
totallayoutParams = new FrameLayout.LayoutParams(TotalLayoutWidth,
FrameLayout.LayoutParams.FILL_PARENT, 3);
totallayoutParams.setMargins(0, 0, 0, 0);
totalLayout.setLayoutParams(totallayoutParams);
}
if (animation == MenuClickLeftAnim) {
totalLayout.clearAnimation();
totallayoutParams = new FrameLayout.LayoutParams(TotalLayoutWidth,
FrameLayout.LayoutParams.FILL_PARENT, 3);
totallayoutParams.setMargins(-MenuLayoutWidth, 0, 0, 0);
totalLayout.setLayoutParams(totallayoutParams);
}
}
@Override
public void onAnimationRepeat(Animation arg0) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationStart(Animation arg0) {
// TODO Auto-generated method stub
}
}
코드의 XML activitymain.xml
자사가 매우 잘 작동이 코드를 수행 한 번 있도록 동일한 문제를 가지고<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/totallayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F6F6F6"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/menu_layout"
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imagein_menulayout"
android:layout_width="50dp"
android:layout_height="50dp"
android:src="@drawable/ic_launcher" />
</LinearLayout>
<RelativeLayout
android:id="@+id/actuallayout"
android:layout_width="fill_parent"
android:layout_height="match_parent" >
<ImageView
android:id="@+id/imagein_actuallayout"
android:layout_width="150dp"
android:layout_height="150dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
</RelativeLayout>
나도이 문제가있었습니다. 문제가 여러 조각이 있다면 문제를 해결할 수 있지만 이상적이지는 않습니다. 네가해야 할 일은 여러 가지 활동을하는 것이고, 하나 하나에서 네비게이션 서랍을 다시 만들어야 할 수도 있습니다. 하지만 당신이 여전히 조각을보기로 설정해야합니다 상관없이.
그러나 NO 파편을 사용하려면 각 XML 레이아웃에 서랍 레이아웃을 추가하는 것이 유일한 방법입니다 (탐색 서랍은 화면 측면의 서랍 레이아웃입니다). 이것은 구글이 자신의 탐색 서랍 ...
를 도입하기 전에 사람들이 무슨 짓을 나는 이것이 당신이 찾고있는 해답이 될 수 없습니다 알고 있지만 나는 당신이 어떤 슬라이딩 애니메이션을 할 수있는이 코드를 사용
나는 Fragment를 사용하여 결국 이해하기 힘들지 않았습니다. –