package com.luciofm.devfest.anime; import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import butterknife.InjectView; import butterknife.Views; public class LayoutTransitionActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_layout_transition); if (savedInstanceState == null) { getFragmentManager().beginTransaction() .add(R.id.container, new PlaceholderFragment()) .commit(); } } /** * A placeholder fragment containing a simple view. */ public static class PlaceholderFragment extends Fragment { @InjectView(R.id.container) LinearLayout container; public PlaceholderFragment() { } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setHasOptionsMenu(true); } @Override public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { getActivity().getMenuInflater().inflate(R.menu.layout_transition, menu); super.onCreateOptionsMenu(menu, inflater); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.action_add_text) { addView(newTextView()); } else if (item.getItemId() == R.id.action_add_button) { addView(newButton()); } return super.onOptionsItemSelected(item); } private void addView(View view) { container.addView(view, 0); } private Button newButton() { Button button = new Button(getActivity()); button.setText(getString(R.string.one_button)); ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); button.setLayoutParams(params); button.setOnClickListener(clickListener); return button; } private TextView newTextView() { TextView textView = new TextView(getActivity()); textView.setText("Um texto"); ViewGroup.MarginLayoutParams params = new ViewGroup.MarginLayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); params.bottomMargin = params.topMargin = getResources().getDimensionPixelSize(R.dimen.text_margin); textView.setClickable(true); textView.setLayoutParams(params); textView.setOnClickListener(clickListener); return textView; } View.OnClickListener clickListener = new View.OnClickListener() { @Override public void onClick(View v) { container.removeView(v); } }; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_layout_transition, container, false); Views.inject(this, rootView); return rootView; } } }