Android :: How To Set Style Of Scroll Bar?
May 27, 2009Is there any way to set the style of the scroll bar so that it is visible only when scrolling and the rest of the time it is invisible?
View 2 RepliesIs there any way to set the style of the scroll bar so that it is visible only when scrolling and the rest of the time it is invisible?
View 2 RepliesAny View have a constructor public View (Context context, AttributeSet attrs, int defStyle) which called when View declared with a style attribute So, if I have some class inherited from View class, I can access to declared attributes (like "android:layout_width" or "android:background") via AttributeSet attrs in a constructor. But when I move attributes to style I cannot see attributes and values exists in a style - I want to read items declared in style but I have only styleID in defStyle parameter. Is there some way to read style Items using styleID?
View 2 Replies View RelatedI 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.
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).
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);
I've developed a fairly extensive application. The problem began when I started programming...my spinners are the solid gray rectangular style (unlike the newer style with the triangle in the lower right corner). When I started developing this app several months ago, I couldn't figure out why my spinners were different (after many hours) so I just ignored it. I'm at the point now of polishing my program and want the newer spinner style. So, I'm beating my head against the wall again. I went to my Android SDK Mananger in Eclipse and updated my Android SDK Tools, Platform-tools, and Build-tools. I have the lastest versions of all of these (22.3 and 19.0.1). When I create a new project, the newer spinner style appears. However, none of my older projects changed. They still have the same old gray, rectangular type spinners. I tried using a "android format" line command I found while Googling, but no luck with that either.I'm using ADT Bundle with build v22.2.1-833290 on a Mac OSX Mavericks.
View 1 Replies View RelatedIt 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 RelatedI have 2 ScrollViews in my android layout. How can I synchronise their scroll positions?
View 1 Replies View RelatedI'm creating my own View class, and defining custom xml attributes with a attrs.xml. As long as I provide each attribute manually, there is no problem, but
code:...................
The android:text is properly set in my instance, but the borderDrawable is not. I guess this has something to do with namespaces, because inside the styles.xml, the name="mypack:borderDrawable" is not handled by the XML parser's namespace facility, because its inside an attribute value. So "mypack" is in no way connected to "http://some.weird.url.com/seems/not/to/ matter" and adding it via xmlns:mypack... to the stylefile would not help, I guess. In the same file, "android:text" is somehow recognized, even though "android" is AFAIK only a ns-defintion for [url], which is also not declared in that file.
So what is the proper way to set a custom attribute in a style?
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 RelatedI 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 RelatedSo 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 RelatedI 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 RelatedI need to use list selector , XML syntax , to custom my list view , can you help me find his full documentation .
View 4 Replies View RelatedI have been looking and looking for an App that I can use to make a list of people. I want to be able to click on each person and have it bring up all the contact information that i could ever dream of attaching (address, company, phone numbers, email, etc) to the person and be able to put notes per conversation I had with them. I also want it to be able to sync with my google calender and have it notify me when I need to call someone. And when it does notify me, I want to be able to bring up all the information listed above. Has anyone seen anything like this? I am a complete newbie to forums and not quite sure how all this works. and the live chat thing wont connect.
View 5 Replies View RelatedI want to set Bold-style or TextColor one by one in TextView. Can I do it? I thought use InputFilter, but the Class could not set style.(may be..)
View 3 Replies View RelatedI am quite impressed by the workflow I follow when developing Android applications: Define a layout in an xml file and then write all the code in a code-behind style. Is there an equivalent style for the web? I mean, with a predefined list of widgets that can be defined using a markup language and then control them using code? I have come across Google's Web Toolkit that does something like this but I'd like to hear what other's think as well.
View 3 Replies View RelatedI've searched and looked and can't find anything. I will admit I could be missing something completely. I just want a T9 style keyboard. I love it over everything for one handed. I had one on my mytouch when i had it over a year ago but I can't remember what it was called and I don't remember paying for it. I moved and can't find the phone. Anything? Definitely preferable if it's free. If it's not possible screen shots?
View 4 Replies View RelatedItching Thumb (Task Manager) - Android app on App Brain You can switch between apps like Webos & if you slide the card up, it closes the card/app just like in WebOS!
View 6 Replies View RelatedHow to add a boarder to a TableLayout in android, like the one below?
http://developer.android.com/images/table_layout.png
I finally decided to use styles and themes instead of tediously setting attributes for each individual view. I was able to get the style to work when I set it on android:textAppearance, but when I try to just set it right on the style attribute like below, it no longer applies.This is happening to me for Buttons as well as TextViews. What I want is to be able to have a few different styles for text views and buttons and then just set the style on each button or text view.The style will need to define textSize, textColor, background and maybe a few others.Since background and some other things are not textAppearance,I need to use the general style attribute.
View 4 Replies View RelatedCan we import the CSS style sheets in to our android application. You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?
View 4 Replies View RelatedIs there a way to set a Spinner's style so that each entry has the but no radio button?
View 2 Replies View RelatedAs part of my project I need a spinner that should display items like HTML select tag rather opening a new window.
View 3 Replies View RelatedI want to put a triangular shaped button in my app. I have the button image (.png) but don't know how to use this as my button. I don't want to use an Image Button as I don't want to have a rectangular box behind this image.
View 2 Replies View RelatedI am trying to apply common style to different textview that can be either defined in a layout xml file or programmatically and that does not seem to work for some attributes: My style in styles.xml is:
<style name="ListName"> <item name="android:colorForeground">#f0f</item> <item name="android:padding">4sp</item> <item name="android:textSize">30sp</item> <item name="android:textColor">#CCC</item> <item name="android:gravity">left</item> <item name="android:typeface">serif</item> <item name="android:textStyle">bold</item> <item name="android:colorBackground">#999</item> </style>
In my layout xml i have <TextView style="@style/ListName" ...></ TextView> and in my activity java class i have: TextView nametv = new TextView(this,null,R.style.ListName); However some parameters does not seem to work very well: - textStyle to bolditalic does not seems to be recognized - textColor/colorForeground/colorBackground does not work at all. I have been through the documentation, but could not find precise reference documentation for that attributes, nor sample for the color setting.
I have seen and own several ones with the look but cannot find a single one that actually flips. Was there ever one that did before HTC became all anal about it. Is not like they really invented this.
View 1 Replies View RelatedI create my own widget with its own drawable for background.
So in my styles.xml file, I have this: <resources> <style name="MyWidget"> <item name="android:background">@drawable/btn_mywidget_bg</item> </style> </resources>
In my main.xml, if i specified my 'style' attribute, my background drawable was displayed correctly. <test.MyWidget android:id="@+id/mywidget" style="@style/MyWidget" />
but if I just do this: <test.MyWidget android:id="@+id/mywidget" /> , the background drawable is not display correctly.
Can you please tell me how can I specify the default style of my widget so that I don't need to add style="@style/MyWidget" everytime I use my widget?
Is there a way to set a style for a View at runtime? I've seen this question a few times on the board here but no answers, so probably not:
<ImageView android:id="@+id/blah" style="@style/mystyle" />
// later... ImageView iv = (ImageView)findViewById(...);
iv.setStyle(R.style.myotherstyle);
Is it not possible to do something like this? We have to manually change everything in code instead?
I want a simply T9 texting app so I don't have to use both hands.I want to be able to use just one hand while in the car, instead of two hands to text.
View 12 Replies View Related