Android:如何在Viewpager中访问Fragment中的项目

时间:2012-09-26 10:54:56

标签: android android-viewpager fragment

在我的Activity中,我在Viewpager中使用Fragment。 My Fragment包含一些像ImageView和ImageButton的项目。是否可以访问我的片段中的指定项目?我想控制这个。在我的项目中,当我按下键盘上的指定按钮时,我想将焦点设置为片段中的第一个ImageButton? 谢谢你的帮助!

main.xml中 ..........      

            <android.support.v4.view.ViewPager
                android:id="@+id/viewPagerDetail"
                android:layout_width="1170dp"
                android:layout_height="140dp" >
            </android.support.v4.view.ViewPager>

            <LinearLayout
                android:id="@+id/motionCotrol"
                android:layout_marginTop="10dp"
                android:layout_width="84dp"
                android:layout_height="120dp"
                android:paddingBottom="15dp">

                <ImageView
                    android:id="@+id/img"
                    android:layout_width="84dp"
                    android:layout_height="105dp"
                    android:scaleType="fitXY"
                    android:src="@drawable/selection_thick" 
                    />

            </LinearLayout> 
        </RelativeLayout>

..........

fragment.xml之

<LinearLayout
    android:id="@+id/list"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    >

    <!--
         <ImageView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_gravity="center_vertical"
        android:layout_weight="0.1"
         />
    -->

    <include

        android:layout_width="100dp"
        android:layout_height="wrap_content"
        layout="@layout/items" />

    <include
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        layout="@layout/items" />

    <include
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        layout="@layout/items" />

1 个答案:

答案 0 :(得分:0)

1。在片段类中创建自定义KeyDown事件。     


    public void keyDownInFragment(int keyCode){
      // Your Implementation for focusing a widget goes here
    }
    

2。在您的Activity(FragmentActivity或MainActivity)中,使用以下代码

捕获KeyDown事件
 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
    // Replace the key you have pressed in Keyboard for KeyEvent.KEYCODE_HOME in the following line
        if (keyCode == KeyEvent.KEYCODE_HOME) {
           // Call your fragment's keydown event method
                  ((FragmentName)fragments.get(0)).myOnKeyDown(keyCode);
           // get(0) instead of zero user the index number at which you have inserted your fragment in the Page Adapter
        }
    }