2012-03-21 73 views
1

我在我的應用程序中有一個水平滾動視圖。在滾動視圖的任一側,我希望保留一個左和右箭頭按鈕(在下面的ibRft & ibRight),它應該始終可見,並且在任何時間點都不應該隱藏在水平滾動視圖圖像之後。修復水平滾動視圖兩側的左右箭頭按鈕

面對我的問題是:

  1. 不知何故,水平滾動視圖那種重疊的兩個按鈕。

  2. 另外,我沒有看到任何事情發生時,我設置按鈕的onclick監聽器。我在某處看到,當我們有一個水平滾動視圖時,這是一個問題。

請幫忙。

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 


    <RelativeLayout 
     android:id="@+id/RelBt" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true"> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:text="NEWS" /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_centerHorizontal="true" 
      android:text="LIVE T.V." /> 

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:text="YOUTH" /> 
    </RelativeLayout> 

    <TextView 
     android:id="@+id/tvtmp" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:text="Video will come up here" /> 

    <RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/RelBt" 
     android:layout_below="@+id/tvtmp" > 

     <ImageButton 
      android:id="@+id/ibLeft" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/ic_launcher" /> 

     <ImageButton 
      android:id="@+id/ibRight" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/ic_launcher" /> 

     <HorizontalScrollView 
      android:id="@+id/hsv" 
      android:layout_width="wrap_content" 
      android:fadingEdgeLength="100dp" 
      android:layout_height="wrap_content" > 

      <RelativeLayout 
       android:id="@+id/RelativeLayout1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" > 

       <ImageView..../> 
<ImageView..../> 
<ImageView..../> 
<ImageView..../> 
<ImageView..../> 

          </RelativeLayout> 
     </HorizontalScrollView> 
    </RelativeLayout> 

</RelativeLayout> 

Java文件是

public class Main extends Activity implements OnClickListener{ 

    HorizontalScrollView hSV; 
    ImageButton ibLeft,ibRight; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ibLeft=(ImageButton) findViewById(R.id.ibLeft); 
     ibLeft.setOnClickListener(this); 

     ibRight=(ImageButton) findViewById(R.id.ibRight); 
     ibRight.setOnClickListener(this); 

     hSV=(HorizontalScrollView) findViewById(R.id.hsv); 

    } 

    @Override 
    public void onClick(View v) { 
     if(v.getId()==R.id.ibLeft){ 
      Toast.makeText(Main.this, "Left", Toast.LENGTH_SHORT).show(); 
     } 
     else if(v.getId()==R.id.ibLeft){ 
      Toast.makeText(Main.this, "Right", Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

回答

1

將您的HorizontalScrollView相對於你的ImageButtons

//... 
<RelativeLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/RelBt" 
     android:layout_below="@+id/tvtmp" > 

     <ImageButton 
      android:id="@+id/ibLeft" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/ic_launcher" /> 

     <ImageButton 
      android:id="@+id/ibRight" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentRight="true" 
      android:layout_centerVertical="true" 
      android:src="@drawable/ic_launcher" /> 

     <HorizontalScrollView 
      android:id="@+id/hsv" 
      android:layout_width="wrap_content" 
      android:fadingEdgeLength="100dp" 
      android:layout_toRightOf="@id/ibLeft" 
      android:layout_toLeftOf="@id/ibRight" 
      android:layout_height="wrap_content" > 
//... 

Regardind沒有收到他們很可能被HorizontalScrollView覆蓋點擊事件,也是你的按鈕在onClick()方法中,將相同的ID(左側按鈕)設置爲兩個按鈕,左側和右側。

+0

fadingEdgeLength不起作用,不包括箭頭。 – JPM 2015-11-23 22:35:41

+0

@JPM根據您的圖片尺寸計算適當的值。 – Luksprog 2015-11-24 04:33:43

相關問題