I have a horizontal scrollview in my app. On either side of the scrollview, I wish to keep a left and a right arrow buttons (ibLeft & ibRight below), which should be visible all the time and should not hide behind the horizontal scrollview images at any point of time.
The issues faced by me are:
-
Somehow, the horizontal scrollview kind of overlaps the two buttons.
-
Also, I do not see any thing happening when I set onclick listeners for the buttons. I read somewhere that this is a problem when we have a horizontal scrollview.
Kindly help.
<?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>
The java file is
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();
}
}
}
Position your
HorizontalScrollViewrelative to yourImageButtons:Regardind the buttons not receiving click events they are probably covered by the
HorizontalScrollView, also you’ve set the same id(of the left button) to both buttons, left and right in theonClick()method.