I have a custom class extending TextView (I used this trick to set my custom font).
I've a ListView and its elements are represented with my custom TextView.
Sometimes happens that the text is too long to fit and it starts a new line. I want to avoid this, so i set android:singleLine=true in the XML of my element layout.
I want to know if it's possible to animate the TextView of an element of the list, so that if such element is selected, it first scrolls its text to the left, till it reaches the end of the text, then scroll back to the right till the beginning.
I tried with marquee but it looks like it can only move in one direction and it's not what i want.
Related
I wasn't sure what to title this without explaining it all there. Essentially, I want to populate part of a screen with a bunch of buttons. The buttons should have text from an ArrayList (or other structure) and they should be aligned horizontally to each other from the left to the right of the screen. When there is no more room to the right, it starts a new row. I've attached an example. Example layout here
I know how to make custom list adapters for my objects and how to make listeners for parts within the list items, but I'm just not sure how to make the "list" of buttons go horizontally with wrapping to the next line.
It seems https://github.com/google/flexbox-layout might help you.
You can use FlexboxLayoutManager as adapter, or simply place all the buttons inside FlexboxLayout, they will wrap automatically depending on their width.
I need a vertical slider similar the standard slider. Is there a way to modify the existing one or do I need to make a new one?
The standard slider would work for me. I just need it to work vertically.
Perhaps I should better clarify my issue with the standard slider.
Yes, I can drag the size of the slider and it will be vertical. The problem is that when you select the value of the slider to show the text gets buried in the low side of the slider when you slide it down all the way. It essentially gets cut off and only shows the top half of the slider value character. I find no way to correct this by moving the shown text up a little so it all shows. I see no way to change text vertical or offset position in the properties setting.
The text settings only allow you to change the text format to right, center and left justify. There is no setting that can move the text up to prevent it from being cut off when the slider is all the way to the lower or down position.
The value text shows ok on the top of the slider. The problem is on the bottom side when you set the slider to be vertical.
It looks like the the show value setting does not place the value on the top layer of the slider and it gets hidden behind something else in the slider object.
LC9, Windows 10
I think I'm understanding your question. If you just resize the horizontal slider control so that the width is narrower than the height, the orientation of the slider control will automatically change to vertical.
Apparently it is a bug in this version of LC. At least in Win which is where I am testing.
Putting the scrollbar vertically cuts the value when it reaches the bottom.
But I found a solution so that it does not cut. Play around with the properties of the font. Such as size and family. In my case it worked fine by lowering the font size by one pixel.
Default: Segoe UI font, size 12
I just set the size to 11 and it doesn't cut anymore.
For what it is worth, I do not see this issue on a Mac. A vertical slider works as advertised. Font size makes no difference.
Are you saying that in the horizontal mode, you do not see this, but when changed to vertical, you do?
Try creating a scrollbar and a text field.
Set the scrollbar's showValue property to false and copy the following script to your scrollbar. Note that your field must be called "scroll value".
on scrollbarDrag pNewPosition
local tLoc
lock screen
# The Current Loc of Field
put the loc of field "scroll value" into tLoc
# New Position of scrollbar
put pNewPosition into field "scroll value"
# New Loc of Field
put the mouseV into the item 2 of tLoc
set the loc of field "scroll value" to tLoc
set the left of field "scroll value" to the right of me
unlock screen
end scrollbarDrag
I want to make the width of a recyclerView wider than the width of the layout itself so that only a part of the items of the recyclerView could be seen until the user scroll to the left.
I think an image can explain it better:
Each item of the recyclerView have 5 textViews like this:
And I want to see only 4 of them until the user scrolls to the left like this:
After scrolling, the first textView shouldn't be seen until the user scrolls to the right.
How can I accomplish that? Should I change the item layout to be larger than the screen or the recyclerView?
You must be looking for something like this.
Embed the RecyclerView (nestedScrollingEnabled=false) inside a Horizontal Scrollview
List item for Recyclerview should have the width set to wrap_content
You can checkout this project on Github
I use the libgdx widget List. As I understand it, the height of the list item corresponds to the size of the skin font. But I want to change the item height. The use of list.setScaleY() visually gave nothing.
Is it even possible?
Is there a way how to wrap text in Label into multiple rows (using with BoxLayout Y container)? Always, i get the text overflow hidden. Especially long text that should split into two or more lines.
I get it working with TextArea component and with TextArea.row set to 2 or more. But the width is a little bit tricky.
How can I set Label or TextArea width or height?
The label is always a single line label the solution based on text area should work just fine if it doesn't I suggest making sure that you added everything on the EDT (you can activate EDT violation detection in the simulator menu) and if you added the component after the form is shown you should use revalidate(). There is no need to define the row count.
Just for completeness here is how this would work:
TextArea lbl = new TextArea("My very long string that should break lines because its really really really really long and just won't end");
lbl.setEditable(false);
lbl.setFocusable(false);
lbl.setUIID("Label");