Galera,
Estou desenvolvendo um app, com o Layout estilo o do Facebook. O que me resta para deixar ele completo é, ao clicar na em algum item da lista que fica escondida, mudar a tela\view do app.
Sabem como posso fazer isso? o código segue abaixo:
[code]package br.com.android.pedmobile;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.List;
import br.com.android.negocios.Item;
import br.com.android.negocios.PedItem;
import br.com.android.negocios.PedVenda;
import android.app.Activity;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.TranslateAnimation;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
public class PedMobilePedido extends Activity {
private ImageButton buttonSwitch;
private View subLayout;
private View topLayout;
private ListView subViewListView;
private String listViewDummyContent[] = new String[7];
private Display display;
private View fakeLayout;
private AnimationListener AL;
private View viewClientes;
private View viewFrete;
private View viewSwitchOpcao;
private RelativeLayout listaOpcoesLay;
private Array opcoes;
private LinearLayout layoutItem;
// Valores para depois da animação
private int oldLeft;
private int oldTop;
private int newleft;
private int newTop;
private int screenWidth;
private int animToPostion;
// TODO change the name of the animToPostion for a better explanation.
private boolean menuOpen = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pedmobile_pedido);
listViewDummyContent[0] = "CLIENTE";
listViewDummyContent[1] = "ITENS";
listViewDummyContent[2] = "INSTRUÇÕES A VENDAS";
listViewDummyContent[3] = "ROTEIRO";
listViewDummyContent[4] = "FRETE";
listViewDummyContent[5] = "COND. PAGTO";
listViewDummyContent[6] = "RESUMO DO PEDIDO";
buttonSwitch = (ImageButton)findViewById(R.id.btSwitch);
subLayout = (View) findViewById(R.id.layout);
topLayout = (View) findViewById(R.id.layoutActionBar);
subViewListView = (ListView)findViewById(R.id.listMenuSwitch);
fakeLayout = (View)findViewById(R.id.fake_layout);
final LinearLayout layoutItem = (LinearLayout) findViewById(R.id.linearLayoutClientes);
viewClientes = getLayoutInflater().inflate(R.layout.pedmobile_pedido_clientes, layoutItem, false);
viewFrete = getLayoutInflater().inflate(R.layout.pedmobile_pedido_frete, layoutItem, false);
layoutItem.addView(viewClientes);
// Cria a subLista
viewSwitchOpcao = getLayoutInflater().inflate(R.layout.pedmobile_switch_opcao, layoutItem, false);
layoutItem.addView(viewSwitchOpcao);
listaOpcoesLay = (RelativeLayout) findViewById(R.id.layout);
LayoutInflater mInflater = null;
mInflater = LayoutInflater.from(this);
List<OpcaoSwitch> opcoes = new ArrayList<OpcaoSwitch>();
Resources r = getResources();
for (int i = 0; i <= 6; i++) {
int resId = r.getIdentifier("icon_"+i,"drawable", getPackageName());
opcoes.add(new OpcaoSwitch(listViewDummyContent[i],resId));
}
SwitchAdapter adapter = new SwitchAdapter(getApplicationContext(),opcoes);
// Configura o listview para usar o adapter.
subViewListView.setAdapter(adapter);
subViewListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int arg2, long arg3) {
// TODO Auto-generated method stub
if(arg2 == 0){
//viewClientes.setVisibility(4);
layoutItem.addView(viewFrete);
}
}
});
display = getWindowManager().getDefaultDisplay();
screenWidth = display.getWidth();
int calcAnimationPosition = (screenWidth / 3);
// Value where the onTop Layer has to animate
// also the max width of the layout underneath
// Set Layout params for subLayout according to calculation
animToPostion = screenWidth - calcAnimationPosition;
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(animToPostion, RelativeLayout.LayoutParams.FILL_PARENT);
subLayout.setLayoutParams(params);
topLayout.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_DOWN) {
if (menuOpen == true) {
animSlideLeft();
}else if (menuOpen == false){
animSlideRight();
}
}
return false;
}
});
buttonSwitch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(menuOpen == false){
animSlideRight();
} else if (menuOpen == true) {
animSlideLeft();
}
}
});
AL = new AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
buttonSwitch.setClickable(false);
topLayout.setEnabled(false);
}
@Override
public void onAnimationRepeat(Animation animation) {
// TODO Auto-generated method stub
}
@Override
public void onAnimationEnd(Animation animation) {
if(menuOpen == true) {
Log.d("", "Open");
topLayout.layout(oldLeft, oldTop, oldLeft + topLayout.getMeasuredWidth(), oldTop + topLayout.getMeasuredHeight() );
menuOpen = false;
buttonSwitch.setClickable(true);
topLayout.setEnabled(true);
} else if(menuOpen == false) {
Log.d("","FALSE");
topLayout.layout(newleft, newTop, newleft + topLayout.getMeasuredWidth(), newTop + topLayout.getMeasuredHeight() );
topLayout.setEnabled(true);
menuOpen = true;
buttonSwitch.setClickable(true);
}
}
};
}
public void animSlideRight(){
fakeLayout.setVisibility(View.VISIBLE);
newleft = topLayout.getLeft() + animToPostion;
newTop = topLayout.getTop();
TranslateAnimation slideRight = new TranslateAnimation(0,newleft,0,0);
slideRight.setDuration(300);
slideRight.setFillEnabled(true);
slideRight.setAnimationListener(AL);
topLayout.startAnimation(slideRight);
}
public void animSlideLeft() {
fakeLayout.setVisibility(View.GONE);
oldLeft = topLayout.getLeft() - animToPostion;
oldTop = topLayout.getTop();
TranslateAnimation slideLeft = new TranslateAnimation(newleft,oldLeft,0,0);
slideLeft.setDuration(300);
slideLeft.setFillEnabled(true);
slideLeft.setAnimationListener(AL);
topLayout.startAnimation(slideLeft);
}
}
[/code]
[code]<?xml version="1.0" encoding="utf-8"?>
<SurfaceView android:id="@+id/surfaceView1"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<RelativeLayout android:id="@+id/layout"
android:layout_width="220dp"
android:layout_height="fill_parent"
android:background="@color/background2"
android:orientation="vertical" >
<LinearLayout android:id = "@+id/fake_layout"
android:layout_width = "wrap_content"
android:layout_height = "wrap_content"
android:orientation = "vertical"
android:visibility = "gone">
</LinearLayout>
<ListView
android:id="@+id/listMenuSwitch"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</ListView>
</RelativeLayout>
<RelativeLayout android:id="@+id/layoutActionBar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/background3">
<LinearLayout android:id="@+id/linearLayoutActionBar"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
style="@style/TitleBar">
<ImageButton android:id="@+id/btSwitch"
android:src="@drawable/navigation_cancel_light"
style="@style/TitleBarAction"/>
<ImageView style="@style/TitleBarSeparator" />
<TextView
android:id="@+id/textViewPedido"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="Pedido"
android:gravity="center_vertical"
android:textColor="@color/title_text"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
style="@style/TitleBarLogo"
android:textSize="20dp"/>
<TextView
android:id="@+id/textViewNrPedido"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:text="0000-0000"
android:textColor="@color/title_text"
android:gravity="center_vertical"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:textSize="20dp"/>
<TextView style="@style/TitleBarText" />
<ImageView style="@style/TitleBarSeparator" />
<ImageButton android:id="@+id/btClose"
android:src="@drawable/navigation_cancel_light"
style="@style/TitleBarAction"/>
</LinearLayout>
<LinearLayout android:id="@+id/linearLayoutClientes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="false"
android:background="@color/foreground2"
android:layout_alignParentBottom="true"
android:layout_below="@id/linearLayoutActionBar">
</LinearLayout>
</RelativeLayout>
[/code]