Android :: How To Scroll Programatically ScrollView ?
Jan 8, 2010
I have a little problem with a ScrollView.I have a layout for an activity which is made with a ScrollView. This scrollview contains two ListViews.<?xml version="1.0" encoding="utf-8"?>
<ListView android:id="@+id/accountsListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:scrollbars="none" />
<ListView android:id="@+id/cardsListView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" android:scrollbars="none" />
</LinearLayout>In onCreate method of my activity I compute ListViews height according there contents.During execution, on activity launch, ScrollView is already scrolled a bit.So I tried, at the end of onCreate to call method scrollTo(0, 0), but it does not change anything.
View 1 Replies
Aug 11, 2010
I have a horizontal scroll view containing multiple Bitmaps of variable length. My question is how can i make a particular bitmap selected which in not visible on the current screen and let the horizontal scroll to scroll such that the earlier invisible Bitmap is now visible.
View 3 Replies
View Related
Aug 24, 2010
I'm pretty new to Android app development, and I've been playing around with swipe gestures using Android's SimpleOnGestureListener and a ViewFlipper.There are 3 children of the ViewFlipper, and each is a ScrollView. They're all dynamically populated when the Activity loads, and they don't change after that. The ScrollView is where the SimpleOnGestureListeners are attached.When I swipe on a page that scrolls, I get something full of "in onClick" "in onScroll" "in onFling" etc.On a page that's too short to scroll, I get "in onClick" "in onShowPress" "in onLongPress", and that's only if I'm touching the content within the too-short scrollview's children--if I touch elsewhere I get no events at all.Ideas on what's wrong, or how to detect the swipe gesture no matter how big the ScrollView is?
View 3 Replies
View Related
Mar 11, 2010
I have a TableLayout which is in a ScrollView, so I get vertical scroll. But when the columns exceed the screen with, I want the horizontal scroll also.
View 3 Replies
View Related
Apr 9, 2010
I am currently using a modified Gallery widget to display real-time events coverflow-style. What I now need is some Method to scroll to a specific item within the Gallery. Such method IS available within frameworks/base/core/java/android/ widget/Gallery.java as scrollToChild but is declared as private. Do you know of any manual way to move/scroll around a Gallery / List Widget?
Current workaround would be to inject DPAD_RIGHT using the Instrumentation Framework, which is as really ugly solution.
View 2 Replies
View Related
Oct 19, 2010
I've extended ViewGroup to achieve something like a FlowLayout.I put my custom ViewGroup into a ScrollView, dynamically add a bunch of content and it doesn't scroll.The content that flows off the screen is not viewable.What am I missing, how can I allow my ViewGroup to be compatible with ScrollView?
View 1 Replies
View Related
Jul 16, 2010
I must be overlooking something real simple here, but i think i'm trying to do something fairly basic.. Simply retain the scrollbar position of a ScrollView on orientation change...
Here is the code for my onSaveInstanceState and onRestoreInstanceState.. sView is the container for the ScrollView layout. Within my scrollview is a linearlayout with a lot of textviews.
CODE:............
If I set a Toast with the values of sViewX and sViewY on the Restore, the values are kept and correct.
I just tried to do a sView.scrollTo(0,150); in my onCreate.. just to see if that would open the activity at 150px down, and it didn't. I think my issue has to do with the .scrollTo method.
View 1 Replies
View Related
Mar 10, 2010
I want some of the goodies in a ListView, like being able to use a ListAdapter, and item selection, etc, but I don't want the ScrollView portion of it. I want to implement that part myself, in a different way (why or how I do this isn't really the point of this question, so please don't ask "why"). Is there a way to have a ListView that's not in a ScrollView or has the scrolling disabled?
View 2 Replies
View Related
Apr 19, 2010
I have text area and and down to that "ok" and "cancel" button. when i click on text area keyboard appear and focus on the text area and buttons get hide behind the keyboard.
I want when text area get focus scroll a little bit and also display the bottom buttons while text area id selected.
View 2 Replies
View Related
Jun 24, 2010
I've got this odd problem which is happening on 1.6, 2.2, and a MyTouch 3G Slide (which is API #7, and listed as "2.1-Update1" in the Android Device Chooser). If anyone can explain what I'm doing wrong & how to fix it (or possibly confirm that this is an Android bug)The basic idea for my app is to make a stopwatch-sort of thing, in that the user can tap a button to start a timer, then tap it again to stop (pause) the timer; further taps alternate between resuming the timer and pausing the timer.I've got a top-level ScrollView which contains a RelativelLayout, which contains a bunch of widgets. The first widget is a HUGE button (so that it's easy to press), which pushes all my other widgets below the bottom of the screen. This is intentional, as I want to rely on the ScrollView (and an on-screen reminder to the user) to make the rest of the input options available.I've got a simple state-machine type setup, where mState is the current mode (STATE_ TIMER_ NOT_ STARTED before the user presses any buttons, RUNNING after the first press, and then PAUSED after the second, back to RUNNING after the third, etc, etc).
All this works great EXCEPT that when the timer is running, and the user presses the start/stop/resume button again, the ScrollView will scroll down a ways. I am NOT issuing this command (I don't even have a reference to ScrollView object), and I'm not sure why it's doing this.
REPRO:Compile + run the below samples. When the app starts, press the 'Start Timing' button. Use your thumb (or the mouse) to touch-drag the screen upwards (so you can see the RatingBar), then drag it back downwards (so the button is again completely on-screen). Tap the button (which now reads 'PauseTiming') again, and it'll jump down a bit. It should NOT be jumping/scrolling down, since there's no statement (that I can see) that tells it to scroll down. As near as I can tell, it's the setText that causes the scrolling ( when I comment those lines out, no scrolling occurs).WHAT I'M ASKING FOR:if I'm doing something dumb & you could point out what it is, I'd really appreciate it! I wonder if 'touch mode' might have something to do with this, since it does NOT appear to happen (in the emulator) when I use the mouse's scroll wheel to move the panel upwards (i.e.,instead of the simulated finger-dragging). I can't find a whole lot on touch-mode, and nothing specific on focus/selection in touch mode within a ScrollView if you can confirm that this error occurs for you too, that would be ok, too (since misery loves company.AHEM I mean, since it might help confirm that it's not just me MyTestApp.java package bug.android.scrollview;
import android.app.Activity;
import android.os.Bundle;
import android.text.format.Time;
import android.view.Display;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.TextView;
public class MyTestApp extends Activity {
public final static int STATE_TIMER_NOT_STARTED = 1;
public final static int STATE_TIMER_RUNNING = 2;
public final static int STATE_TIMER_PAUSED = 3;
private int mState;
Time t = new Time();
private Time data = new Time();
private Button btnStartStopResume;
private TextView lblSpacer;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.new_time_entry);
btnStartStopResume = (Button) findViewById(R.id.btnStartStopResume);
// Set the button's size so that the other info will also be visible
Display display = ((WindowManager) getSystemService(WINDOW_SERVICE))
.getDefaultDisplay();
// This is such a hack, but the windowScroller doesn't appear to
// have a height at this point in the lifecycle (nor in 'onResume' :( )
btnStartStopResume.setHeight(display.getHeight() - 200);
lblSpacer = (TextView) findViewById(R.id.lblSpacer);
reset();
} public void doStartStopResume(View v) {
if (mState == MyTestApp.STATE_TIMER_NOT_STARTED) {
mState = MyTestApp.STATE_TIMER_RUNNING;
data.setToNow();
} else if (mState == MyTestApp.STATE_TIMER_RUNNING) {
mState = MyTestApp.STATE_TIMER_PAUSED;
String s = getString(R.string.add_scroll_down_to_add);
lblSpacer.setText(s);
} else if (mState == MyTestApp.STATE_TIMER_PAUSED) {
mState = MyTestApp.STATE_TIMER_RUNNING;
public void doReset(View v) {
}public void doNewRunClick(View v) {
public void doAddTiming(View v) {
public void reset() {
mState = STATE_TIMER_NOT_STARTED;
new_time_entry.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/windowScroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
> <RelativeLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
> <Button
android:id="@+id/btnStartStopResume"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dip"
android:text="Start Timing"
android:textSize="40dp"
android:height="290dp"
android:onClick="doStartStopResume" />
<TextView
android:id="@+id/lblSpacer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/btnStartStopResume"
android:layout_centerHorizontal="true"
android:text="@string/add_scroll_down_for_more" />
<TextView
android:id="@+id/lblTimeStartLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblSpacer"
android:layout_alignParentLeft="true"
android:clickable="true"
android:onClick="adjustStartTime"
android:text="Start of this run:"
android:textSize="8dp" />
<TextView
android:id="@+id/lblTimeStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblTimeStartLabel"
android:layout_alignParentLeft="true"
android:clickable="true"
android:onClick="adjustStartTime"
android:text="--:--:-- --"
android:textColor="#FFFFFF"
android:textSize="26dp" />
<TextView
android:id="@+id/lblElapsedLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblSpacer"
android:layout_alignRight="@id/lblSpacer"
android:layout_marginRight="5dp"
android:text="Elapsed Time:"
android:textSize="8dp" />
<TextView
android:id="@+id/lblTimeElapsed"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblElapsedLabel"
android:layout_alignRight="@id/lblSpacer"
android:layout_marginRight="5dp"
android:textColor="#99ff66"
android:text="-- m -- sec"
android:textSize="26dp"
android:layout_marginBottom="10dip"/>
<CheckBox
android:id="@+id/chkNewRun"
android:onClick="doNewRunClick"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/lblTimeElapsed"
android:text="This is a new run of timings"
android:layout_marginBottom="10dip" />
<TextView
android:id="@+id/lblIntensity"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Intensity (1 = none 5 = max)"
android:layout_below="@id/chkNewRun" />
<RatingBar
android:id="@+id/rbIntensity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/lblIntensity"
android:numStars="5"
android:rating="2"
android:layout_marginBottom="5dip" />
<TextView
android:id="@+id/lblNotes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Notes:"
android:layout_below="@id/rbIntensity" />
<EditText
android:id="@+id/txtNotes"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background"
android:layout_below="@id/lblNotes"
android:layout_marginBottom="10dip" />
<Button
android:id="@+id/btnReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtNotes"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:text="Reset"
android:onClick="doReset" />
<Button
android:id="@+id/btnOk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/txtNotes"
android:layout_toRightOf="@id/btnReset"
android:layout_alignParentRight="true"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
android:text="Add Timing To List"
android:onClick="doAddTiming" />
</RelativeLayout>
</ScrollView>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Timer</string>
<string name="dlg_edit_timing_title">Edit A Timing</string>
<string name="add_scroll_down_for_more">< Scroll down for more options! ></string>
<string name="add_scroll_down_to_add">< Scroll down to save this timing! ></string>
<string name="start_timing">Start Timing
</string>
<string name="stop_timing">Pause Timing
</string>
<string name="resume_timing">Resume Timing
</string>
</resources>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="bug.android.scrollview"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MyTestApp"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="5" />
</manifest>
UPDATE 1: Adding if( btnStartStopResume.isInTouchMode() )
Toast.makeText(this, "TOUCH MODE", 2000);
elseToast.makeText(this, "NOT touch mode", 2000);
then setting breakpoints in the debugger confirms that the button is always in touch mode (regardless of whether I finger-drag the panel up/down, or mouse-wheel it up/down). So it's a combination of being in touch-mode AND finger-dragging the panel after the 2nd button-press (i.e, when the app is in 'stopped/paused timing' mode) that's causing the odd extra-timing in subsequent pauses.
UPDATE 2:
I just noticed that it's scrolling down to the EditText, and no further. It looks like when you move the panel down the EditText gets the selection, and after the click event the ScrollView scrolls back to the thing that has the selection. Seems to explain why the mouse-wheel approach doesn't have this problem (it moves the selection/focus back up to the button).
View 1 Replies
View Related
Jun 21, 2010
I want to have a dynamic table, with rows added over time as a result of user interaction, using a TableLayout inside a ScrollView. This works fine, but when I want to scroll to the end of the table using fullScroll(), it always leaves out the last line; that is, it scrolls so that the one before the last one is visible. The last line is visible when scrolling manually, and the scrollbar is correct too.I'm of course open to suggestions as to how to make a better layout out of this; but I'm specifically interested in understanding why fullScroll() behaves that way. Should I give it a different parameter, or use something else altogether? Or does it do that because the newly added line isn't yet visible somehow? (if so, how can I solve that?) Or did I miss some other obvious thing?The following code replicates the problem: TestActivity.java:
package com.example.android.tests;
import java.util.Random;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ScrollView;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
((Button) findViewById(R.id.AddRow)).setOnClickListener(new View.OnClickListener() { public void onClick(View v) {
Random rnd = new Random();
TableRow nr = new TableRow(v.getContext());
for (int c=0; c<3; c++) {
TextView nv = new TextView(v.getContext());
nv.setText(Integer.toString(rnd.nextInt(20)-10));
nr.addView(nv);
}((TableLayout) findViewById(R.id.Table)).addView(nr);
// Scrolls to line before last - why?
((ScrollView) findViewById(R.id.TableScroller)).fullScroll(View.FOCUS_DOWN);
}main.xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:text="Add Row"
android:id="@+id/AddRow"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
<ScrollView
android:id="@+id/TableScroller"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_above="@id/AddRow"
android:layout_alignParentTop="true" >
<TableLayout
android:id="@+id/Table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:stretchColumns="0,1,2" />
</ScrollView>
</RelativeLayout>
Edit: for reference, I implemented Romain Guy's solution as follows:In TestActivity.java, replace:
// Scrolls to line before last - why?
((ScrollView) findViewById(R.id.TableScroller)).fullScroll(View.FOCUS_DOWN);
// Enqueue the scrolling to happen after the new row has been layout
((ScrollView) findViewById(R.id.TableScroller)).post(new Runnable() {
public void run() {
((ScrollView) findViewById(R.id.TableScroller)).fullScroll(View.FOCUS_DOWN);
View 1 Replies
View Related
Mar 12, 2009
It looks like the standard ScrollView does not support horizontal scroll. Has anyone implement a ScrollView with horizontal scroll support? It would be appreciated if you can share it.
View 6 Replies
View Related
Oct 16, 2010
I have 2 ScrollViews in my android layout. How can I synchronise their scroll positions?
View 1 Replies
View Related
Nov 20, 2009
is there no way to change the timeout to scroll in ScrollView? In the source, it's set to: static final int ANIMATED_SCROLL_GAP = 250; so any drags will be blocked for 250ms. This has the appearance of the ScrollView being stuck for a bit before it moves. This makes small scroll gestures difficult to work with. There's no way around this?
View 9 Replies
View Related
Sep 17, 2010
I have a ScrollView (and a LinearLayout within it) set as main content. When the user scrolls the view further down, and then if I replace it's child (LinearLayout) with another LinearLayout, the view remains in the scrolled positioned.How do I reset the ScrollView back to coordinate 0?
View 1 Replies
View Related
Feb 11, 2010
So everything is perfect about my Eris except that the scroll-ball doesn't scroll left anymore. This isn't the first time the problem came up. My last Eris had the same problem. It scrolls in every direction except which is kinda annoying as I use it alot more than I thought I would. Should I take it up with Verizon? It isn't a life or death situation but it makes editing sentences in texts a pain.
View 2 Replies
View Related
Apr 14, 2010
I have a textview displaying many individual words, each word is a link using Spans and setMovement Method( LinkMovementMethod.getInstance()); The textview is wrapped by a ScrollView. However the ScrollView does not work as the links in the TextView are activated instead.Is there a way to combine a ScrollView and TextView so that both the scrolling and links in the text work?
View 1 Replies
View Related
Jan 20, 2010
I have an application I wrote for Android (lat's call it MyMainApp).
My contractor wants me to write another utility (service) to periodically check his website for newer versions of MyMainApp, and if there is one - download it and install.
I know this is handled by the Market app, but my contractor wants to do it in his own utility (he does not want the user to be bothered with the update process).
Of course - the user will be notified and agree to this feature. Can this be done?
View 2 Replies
View Related
Mar 9, 2010
How to add listview inside scrollview ?
CODE:................
I added listview inside scroolview. But its not showing in proper way. The listview is showing only in smaller size.
I tried in most of the ways ? But i can't able to get...
View 5 Replies
View Related
Mar 25, 2010
I'm new to Android development and having a hard time making the UI, so hopefully someone here can help me with a hint...
What I need in my layout is this:
CODE:...............
as you can see the layout will need scrolling, but adding a scrollview as a root to the RelativeLayout tag, didnt do anything...
View 2 Replies
View Related
Jul 1, 2009
I've got a ScrollView containing a vertical LinearLayout.
The LinearLayout contains several items, including a ListView.
The problem is that I can't seem to get the ListView to be fully expanded. It is being compressed to fit everything on the screen, and forcing me to scroll through just the list. I would prefer to be able to scroll the entire layout, including the ListView.
I've played with the layout parameters a lot, but can't seem to get anything to work.
Also, I'm going to put this in another thread, but thought I'd ask here as well. Is there any way to force a separator at the top of a ListView?
View 8 Replies
View Related
May 23, 2009
I am trying to display a screen filled with data fetched from a server. The data, if it were HTML, would look something like the following (try to visualize =) ):
CODE:..............
So I naively tried to put a ListView in a ScrollView. Not only did it not work, but I've since read all about why it is bad by the likes of such luminaries as Hackborn and Guy (it nullifies the optimizations, etc).
Problem is, the half dozen places that said NOT to do it didn't recommend what I SHOULD do instead, excepting one post by Romain Guy specifying footer or header use (not suitable in my example, right?). In other words, it seems like people want to mix a list of items in among other text data, getting the benefits of a ListAdapter, but this isn't addressed anywhere that I can find.
So, what is The Right Way to implement my example above? I'm a step away from trying to add TextViews inside a for loop, which just doesn't sit right in my gut.
View 3 Replies
View Related
Sep 1, 2009
How can I add some buttons below ScrollView that always stay on screen.
View 3 Replies
View Related
May 2, 2009
I show articles in WebView and would like to add some additional information, e.g. publishing date, author etc., into the same ScrollView above the original content. So that it usually doesn't take up space, but the user can just scroll back when the information is needed.
Did any of you do something like that in a sane way?
I thought I can put my stuff into the same ScrollView that WebView uses, but when looking at it with hierarchyviewer I can't see any children, it's probably native.
View 4 Replies
View Related
Jun 13, 2009
I'm making sort of a book app. I have the text displayed as a textview in a scrollview:
CODE:.....
I then have
CODE:...............
And implemented the required following to catch a left fling or right fling. And
CODE:.......
This works fine if the text inside the textview is small (ie. there is no scroll bar as it all fits within the view). But as soon as the text requires scrolling, the gesture is no longer picked up by the detector. onFling is never called.
I have read that it is because scrollview handles its own gestueres? If so what is the easiest way to maintain the ability to scroll up and down the text, and also be able to detect flinging left or right and invoking nextChapter() and previousChapter() respectively?
View 3 Replies
View Related
Aug 19, 2010
I have two ScrollView inside of each of two HorizontalScrollView of a TableRow. When I touch drag one of ScrollView, another ScrollView must scroll as much. For instance, if I have a list of name on left ScrollView and corresponding phone numbers in right ScrollView, scrolling one ScrollView should not destroy the original bounding between the names and phone numbers. Can it be implemented by onTouchEvent? If so, how should I implement this(on both or one of the ScrollView)?
View 1 Replies
View Related
Sep 16, 2010
I want to use GridView with Scroll View(which containing ListView)..
View 3 Replies
View Related
Sep 8, 2010
I want to draw a chart and I'm using a scrollview to do so. my scrollview holds the chart view. What I've observed is that the scrollview's onDraw calls the onDraw of my chart view. Now I draw the entire chart on the canvas when the onDraw of chart view is called. Also scrollview's onDraw is called everytime I scroll the view. So I end up drawing the entire chart multiple times. Is there any better way to achieve what this
View 1 Replies
View Related
Jan 28, 2010
I want to add a ScrollView in TableLayout. Is it possible to add? If yes, than how? Anybody have any idea regarding it? Please share something related to this topic.
View 2 Replies
View Related
Aug 28, 2010
It seems like every example I can find of switching between Activity's involves creating an Intent and passing in the context of a View via an OnClickListener associated with a button.But what if you just decide you need to switch Activity's? In my case, a Preference value is causing an Activity switch. How do you create an Intent that can cause an Activity switch without an associated OnClickListener?
View 4 Replies
View Related