【发布时间】:2013-11-25 05:38:57
【问题描述】:
我需要创建一个“滑动活动”,当用户滑动它时它会滑动。当用户向左“滑动”它时,Activity 应该向左滑动,新的 Activity 将从右侧出现在屏幕上。你不能把它夹在中间。雅虎邮箱应用程序也是如此。您可以在阅读邮件时看到这一点,然后将邮件向左滑动以移动到下一封邮件。如下所示。
在图片中,您可以看到下一封邮件(标题为“谢谢”)正在从侧面打开。就我而言,它们是两种不同的活动。我们还希望我们可以在当前活动的右侧显示下一个活动的一小部分(就像在 windows 手机中一样),以便用户知道他必须滑动。无论如何,这部分现在是强制性的。
我试图用this answer 来做这件事,但这不是我想要的。请问有什么办法吗?
注意
如果我选择 Fragments,很多类将被更改或完全重新编码。
更新
请看下面的代码。在这里,当我在SalesInquiry.java 上滑动时,NewLead.java 应该是打开的,具有上述说明的效果。
DropDownMenu.java
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class DropDownMenu extends Activity {
private TextView addInquiry, addEvent, additionalInfo, addToContacts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_drop_down_menu);
//Intializing instance variables
addInquiry = (TextView)findViewById(R.id.menu_add_inquiry);
addEvent = (TextView)findViewById(R.id.menu_add_event);
additionalInfo = (TextView)findViewById(R.id.menu_additional_info);
addToContacts = (TextView)findViewById(R.id.menu_add_to_contacts);
//Register the Listeners
addInquiry.setOnClickListener(new AddInquiryEvent());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.drop_down_menu, menu);
return true;
}
//Test Button
private class AddInquiryEvent implements OnClickListener
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent = new Intent(DropDownMenu.this,NewLead.class);
startActivity(intent);
}
}
public void onMenuItemClicked(View view) {
switch (view.getId()) {
case R.id.menu_add_inquiry:
Intent intent = new Intent(DropDownMenu.this,NewLead.class);
startActivity(intent);
break;
default:;
}
}
}
SalesInquery.java
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.Window;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
public class SalesInqury extends DropDownMenu {
private ImageView addNewSalesInqury;
private RelativeLayout salesInquryMainLayout;
private TextView testEditSales;
@Override
protected void onCreate(Bundle savedInstanceState) {
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sales_inqury);
//Intializing instance variables
addNewSalesInqury = (ImageView)findViewById(R.id.add_new_sales_inqury_btn);
salesInquryMainLayout = (RelativeLayout)findViewById(R.id.sales_inqury_main_layout);
testEditSales = (TextView)findViewById(R.id.testWord);
//Registering Event handlers
addNewSalesInqury.setOnClickListener(new addNewSalesInquryEvent());
salesInquryMainLayout.setOnTouchListener(mainLayoutSwiped);
testEditSales.setOnClickListener(new OpenSalesDemo()); //TESTING DEMO!!!!!
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.sales_inqury, menu);
return true;
}
//Event Handler for Add New Sales Inquery Button
private class addNewSalesInquryEvent implements OnClickListener
{
@Override
public void onClick(View v)
{
// TODO Auto-generated method stub
Intent intent = new Intent(SalesInqury.this,NewLead.class);
startActivity(intent);
}
}
//SWIP LISTENER
private OnTouchListener mainLayoutSwiped = new OnSwipeTouchListener()
{
public boolean onSwipeLeft()
{
Intent intent = new Intent(SalesInqury.this,NewLead.class);
startActivity(intent);
return true;
}
};
//
//
// TESTING FUNCTION!!
//
//
//Testing function for sales lead opening
private class OpenSalesDemo implements OnClickListener
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent = new Intent(SalesInqury.this,EditLeads.class);
startActivity(intent);
}
}
}
【问题讨论】:
标签: java android eclipse android-activity android-animation