Skip to content Skip to sidebar Skip to footer

Marquee Textview Not Working In Android Layout

I'm trying to get @+id/trackname and @+id/artist_and_album to use the marquee setting in the following layout but they won't scroll. I also tried using setSelected(true) and setFoc

Solution 1:

I modified the layout to:

<LinearLayoutandroid:id="@+id/player_actionbar"android:layout_width="fill_parent"android:layout_height="48dip"android:gravity="center_vertical"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/close"android:layout_width="56dip"android:layout_height="fill_parent"android:padding="4dip"android:scaleType="centerInside"android:background="@drawable/bg_actionbar_item"android:src="@drawable/icn_close" /><Viewandroid:layout_width="1dip"android:layout_height="26dip"android:background="#ff444444" /><TextViewandroid:id="@+id/actionbar_title"android:layout_width="0dip"android:layout_height="fill_parent"android:layout_weight="1"android:textSize="18sp"android:textColor="#ffffffff"android:ellipsize="marquee"android:gravity="center_vertical"android:paddingLeft="6dip"android:paddingRight="6dip"android:singleLine="true"android:layout_marginLeft="8dip"android:text="@string/nowplaying_title" /><ImageButtonandroid:id="@+id/play_queue"android:layout_width="56dip"android:layout_height="fill_parent"android:padding="4dip"android:scaleType="centerInside"android:background="@drawable/bg_actionbar_item"android:src="@drawable/icn_play_queue" /></LinearLayout><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="0dip"android:layout_weight="1"android:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="0dip"android:layout_weight="1"android:padding="10dip"android:background="@null" ><net.sourceforge.servestream.utils.CoverViewandroid:id="@+id/album_art"android:layout_height="fill_parent"android:layout_width="fill_parent" /></LinearLayout><LinearLayoutandroid:id="@+id/player_info"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginTop="10dip"android:gravity="center_horizontal"android:orientation="vertical" ><TextViewandroid:id="@+id/track_number_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingTop="5dip"android:textSize="13sp"android:textStyle="normal"android:textColor="#ffa9a9a9"android:singleLine="true" /><TextViewandroid:id="@+id/trackname"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="17sp"android:textStyle="bold"android:textColor="#ffffffff"android:ellipsize="marquee"android:singleLine="true" /><TextViewandroid:id="@+id/artist_and_album"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="13sp"android:textStyle="normal"android:textColor="#ffa9a9a9"android:ellipsize="marquee"android:singleLine="true" /></LinearLayout></LinearLayout><LinearLayoutandroid:id="@+id/player_controller"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" ><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="40dip"android:paddingLeft="12dip"android:paddingRight="12dip"android:gravity="center_vertical"android:orientation="horizontal" ><TextViewandroid:id="@+id/position_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingRight="6dip"android:textSize="12sp"android:textColor="#ffbbbbbb"android:gravity="right" /><SeekBarandroid:id="@+id/seek_bar"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:gravity="center_vertical"android:paddingLeft="9dip"android:paddingRight="9dip"android:progress="0"android:progressDrawable="@drawable/player_progress_drawable"android:thumb="@drawable/player_progress_thumb"android:thumbOffset="9dip"android:maxHeight="2dip"android:minHeight="2dip" /><TextViewandroid:id="@+id/duration_text"android:layout_width="wrap_content"android:layout_height="wrap_content"android:paddingLeft="6dip"android:textSize="12sp"android:textColor="#ffbbbbbb"android:gravity="left" /></LinearLayout><RelativeLayoutandroid:layout_width="fill_parent"android:layout_height="60dip"android:orientation="horizontal" ><ImageButtonandroid:id="@+id/shuffle_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:paddingBottom="20dip"android:paddingLeft="12dip"android:paddingRight="10dip"android:paddingTop="8dip"android:background="@null"android:src="@drawable/btn_player_shuffle_normal" /><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_toLeftOf="@+id/repeat_button"android:layout_toRightOf="@+id/shuffle_button"android:paddingLeft="10dip"android:paddingRight="10dip"android:gravity="center_vertical"android:orientation="horizontal" ><net.sourceforge.servestream.button.RepeatingImageButtonandroid:id="@+id/previous_button"android:background="@null"android:paddingBottom="20dip"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:src="@drawable/btn_player_prev" /><ImageButtonandroid:id="@+id/play_pause_button"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:paddingBottom="20dip"android:background="@null"android:src="@drawable/btn_player_play" /><net.sourceforge.servestream.button.RepeatingImageButtonandroid:id="@+id/next_button"android:layout_width="0dip"android:layout_height="wrap_content"android:layout_weight="1"android:paddingBottom="20dip"android:background="@null"android:src="@drawable/btn_player_next" /></LinearLayout><ImageButtonandroid:id="@+id/repeat_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:paddingBottom="20dip"android:paddingLeft="10dip"android:paddingRight="12dip"android:paddingTop="8dip"android:background="@null"android:src="@drawable/btn_player_repeat_normal" /></RelativeLayout></LinearLayout>

I also included the following lines in my activity:

    mTrackName = (TextView) findViewById(R.id.trackname);
    mTrackName.setSelected(true);
    mArtistAndAlbumName = (TextView) findViewById(R.id.artist_and_album);
    mArtistAndAlbumName.setSelected(true);

It appears the original layout with the nested RelativeLayout was preventing the text from scrolling.

Solution 2:

Separate class file:

publicclassTextScrollingextendsTextView {

    publicTextScrolling(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    publicTextScrolling(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    publicTextScrolling(Context context) {
        super(context);
    }
    @OverrideprotectedvoidonFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
        if(focused)
            super.onFocusChanged(focused, direction, previouslyFocusedRect);
    }

    @OverridepublicvoidonWindowFocusChanged(boolean focused) {
        if(focused)
            super.onWindowFocusChanged(focused);
    }


    @OverridepublicbooleanisFocused() {
        returntrue;
    }

}

And in your xml file do this:

<yourpakage name.aboveclassname

    android:singleLine="true"
    android:ellipsize="marquee"
    android:marqueeRepeatLimit="marquee_forever"
    android:scrollHorizontally="true"
    android:textStyle="bold|italic"
    android:id="@+id/scrolltext"
    android:padding="5dip" 
    android:textSize="15dp"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" />

Surely this will work..Try it out..

Solution 3:

Here is my marquee code:

<TextView
        android:id="@+id/scanCode"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical"
        android:layout_weight="1"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal"
        android:lines="1"
        android:marqueeRepeatLimit="marquee_forever"
        android:scrollHorizontally="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:textColor="#ffffff" />

Also set in code:

    scanCode.setEnabled(true);
    scanCode.setSelected(true);

Solution 4:

Set focusable(true) and in code call requestFocus(); If your layout contains other view with focusable(true), you should make sure your textview has focused

Solution 5:

try setSelected(true) after settext

Post a Comment for "Marquee Textview Not Working In Android Layout"