0
我有一個名爲FragmentActivity的Activity類。在活動課內我創建三個按鈕名稱Button1,Button2 & Button3。我有三個片段類名爲Fragment1,Fragment2 & Fragment3。滑動以打開活動中顯示的片段類
現在點擊每個按鈕,我在該Activity上設置了一個特定的片段類。我想用滑動來做同樣的事情。我的意思是說打開每個片段類。下面顯示了我使用的代碼。
Fragment_Activity.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<LinearLayout
android:id="@+id/button_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button3" />
</LinearLayout>
<fragment
android:id="@+id/fragment_one"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="in.icebreaker.fragments.Fragment1" />
<fragment
android:id="@+id/fragment_two"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="in.icebreaker.fragments.Fragment2" />
<fragment
android:id="@+id/fragment_three"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="in.icebreaker.fragments.Fragment3" />
</LinearLayout>
代碼FragmentActivity類
public class FragmentActivity extends Activity
{
private Fragment1 fragment1;
private Fragment2 fragment2;
private Fragment3 fragment3;
private static final int FRAGMENT_INDEX1 = 1001;
private static final int FRAGMENT_INDEX2 = 1001;
private static final int FRAGMENT_INDEX3 = 1001;
private int m_CurrentFragment = FRAGMENT_INDEX1;
private FragmentTransaction m_FragmentTransaction;
private Button button1, button2, button3;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_activity);
button1 = (Button)findViewById(R.id.button1);
button1.setOnClickListener(this);
button2 = (Button)findViewById(R.id.button2);
button3.setOnClickListener(this);
button3 = (Button)findViewById(R.id.button3);
button3.setOnClickListener(this);
// Create an instance of fragment class
fragment1 = (VisitorListFragment)getFragmentManager().findFragmentById(
R.id.fragment_one);
fragment2 = (ChatListFragment)getFragmentManager().findFragmentById(
R.id.fragment_two);
fragment3 = (ChatListFragment)getFragmentManager().findFragmentById(
R.id.fragment_three);
// Set current fragment on the activity
setFragment(m_CurrentFragment);
}
private void setFragment(int currentFragment)
{
m_CurrentFragment = currentFragment;
m_FragmentTransaction = getFragmentManager().beginTransaction();
if (m_CurrentFragment == FRAGMENT_INDEX1)
{
m_FragmentTransaction.show(fragment1);
m_FragmentTransaction.hide(fragment2);
m_FragmentTransaction.hide(fragment3);
}
else if (m_CurrentFragment == FRAGMENT_INDEX2)
{
m_FragmentTransaction.show(fragment2);
m_FragmentTransaction.hide(fragment1);
m_FragmentTransaction.hide(fragment3);
}
else if (m_CurrentFragment == FRAGMENT_INDEX3)
{
m_FragmentTransaction.show(fragment3);
m_FragmentTransaction.hide(fragment1);
m_FragmentTransaction.hide(fragment2);
}
m_FragmentTransaction.commit();
}
@Override
public void onClick(View v)
{
switch (v.getId())
{
case R.id.button1:
{
setFragment(fragment1);
break;
}
case R.id.button2:
{
setFragment(fragment2);
break;
}
case R.id.button3:
{
setFragment(fragment3);
break;
}
}
}
}
在我的需求標籤不允許使用。我們只能使用按鈕。那麼有辦法做到這一點。如果可能的話給我示例。 – Rahul
你只能使用viewpager:http://developer.android.com/training/animation/screen-slide.html – mromer
對不起,該教程很容易遵循。你需要什麼需要一定程度的機器人 – mromer