creating a dynamic constraint layout - android

I'm devising a multi file processing system, and they have an interface like this:
The lime arrows show the constraint setup, and the orange box holding the widget is a constrain layout
So, I'd like to make this constraint layout dynamic say I'm only processing 1 file then only a button and its corresponding progress bar should appear, if two files are being processed then 2 buttons and 2 corresponding progress bar should appear and the (orange) constraint layout should resize as well.
For this type of appearing of a group of widgets (the button and it's corresponding progress bar) it seems sensible to save them in a layout and reuse them using <include>, but then the sizes look dynamic that I think the whole UI thing could be just done in java.
So, I'm confused to how to go about making this sort of UI design. The questions that arise would be:
1) If I save the button and it's corresponding progress bar as a layout, how do I reuse it, like I'd have to instantiate it every time no. of file processed would change, setup their constraint, provide different ID to each button and progress bar. (If not possible to answer all these, please tell me if it's at least possible using xml layout to do this)
2) Just use plain java code for all the UI designs that relate to the constraint layout. The code and UI would not be separate.(I think this is how to handle this sort of thing, but, I'm not very knowledged)
So, what would be the appropriate way to go about doing this.

Related

Leanback DetailFragment FullWidthDetailsOverviewRowPresenter customization

I want to customize the FullWidthDetailsOverviewRowPresenter in the Leanback DetailFragment.
Three things I want to accomplish are:
Getting the Actions from top to below of the overview.
Reducing the height of the overview so that it the related movies can be seen without scrolling down.
The background image and the space it occupies at the top of the overview should be gone. The screen should start like the one above.
The end result should be like this:
I already know how to modify inside the overview. How should I modify outside of it?
Because you are moving around the key views of this screen, it sounds like you might have to ditch the current implementation altogether and create your own custom view from scratch. By moving the buttons to the bottom and the detail image (seems like you're moving it to the right side of the description text), you're making it less and less justifiable to even subclass DetailFragment. The developers of Leanback were probably intentional about limiting customizing the interfaces too much as they want a consistent experience for different apps.
I would create a new layout file and load it up on your subclass of DetailsFragment (or DetailsPresenter), depending on your architecture.
You might find inspiration in this tuenti tv sample and part two of Marcus Gabilheri's customization series
Create Row List Fragment
In 1st Row create a Rowpresenter that fits your design with buttons
In other row/s add ListRowPreesenter

Custom view vs. fragment for supplementary UI sections

I'm making an app that will allow a user to make and edit a picture (think MS Paint like). I want there to be a "formatting window" type control which contains a set of tools the user can pick from to edit the picture. For example, it could contain buttons for inserting text, drawing lines, erasing content, etc. The flow would be: user presses the action bar icon for the formatting window, the formatting window opens, and the user presses the button for the associated tool.
I'm curious how I should be handling this type of control for different form factors. It's very simple UI wise - a relative layout view group with a set of buttons lined up in rows. But if I wanted to have it appear at the bottom of the screen on phones (animating up from beneath the screen when the action bar button associated with showing the window is pressed), and at the top right corner of the screen in tablets (animating from the right), how would I best do that? Do I just setup my two phone and tablet layouts to contain the custom formatting window view in different positions? Should the formatting window be a fragment? Help!
I would think that either approach would work, but a custom view sounds easier to me. Either way, you'll need separate layout files for phone vs tablet, since you need to place the view or fragment in a different location.
The thing that would probably make a difference here is how your backing data is being stored. Meaning, what stores the user's choice for formatting controls? My immediate thought would be to use a custom view for the formatting window and allow the activity to set a listener to be notified when the formatting choices change.

Android: How can I use the space from objects with visibility GONE?

When I try to make a layout while working with the graphical layout interface in Eclipse (and not the xml) I came across with this problem:
Let's say that my main layout is only a simple button on the bottom of the screen,
when clicked the button opens up a text box that covers most of the screen.
note : I do this be setting the visibility of the text box from GONE to VISIBLE (and the other way around when I want to hide the text box).
Now (the text box is hidden) I want to use the extra space I have and add a button to the main layout.
normally this isn't much of a problem but since I have the text box covering almost the entire screen in the graphical layout I'm having a lot of trouble doing so (and this is just an example, I want to add more complicated things to my new gained space).
What can I do ? in the graphical layout I can't hide an object (like text box or button) and I drag another button to that space I can see/work with it.
set the android:visibility attribute to "gone" while designing the layout
You are going about this all wrong.
You should be using either a new activity or a diloag box to create a textbox that covers the entire screen or a ViewFlipper to create multiple views on your activity.
It appears that you want to do it from one layout so ViewFlipper would be the simplest choice here.
The documentation is available in the usual place:
http://developer.android.com/reference/android/widget/ViewFlipper.html
Some examples can be found at:
http://www.androidpeople.com/android-viewflipper-example
http://android-pro.blogspot.com/2010/09/using-view-flipper-in-android.html
EDIT
Your question isn't very clear so I have tried to give you my best guess from the information provided. Perhaps a diagram of what you are trying to do here might be more easily understood. Though as I stated a new activity or a dialog box might be better. So you could also look at using a dialog method:
http://www.androidsnippets.com/prompt-user-input-with-an-alertdialog

Android TitleBar / NavBar?

I am not sure what the proper term is, but I am trying to add a "TitleBar" to the top of one of the windows in my App. Much like the Contacts App, I have several Tabs along the top of the screen. When you select an item from the list, it loads the next Activity, but that Activity no longer has the Tabs at the top of the screen.
I don't know if it is called a TitleBar or what. The Contacts App has this TitleBar along the top of the screen when you select a person from the list of Contacts.
I am trying to mimick the Grey Bar that says "George Washington"
The Contacts app is open source (as are most of the core Android system apps). I suggest checking it out and looking at the layout you want to emulate. In general, poking around a lot of that code is a good idea to get a handle on some best practices, or just to borrow a few tricks.
In this particular case, they're using a custom View called ContactHeaderWidget, which is actually a FrameLayout wrapping a TextView and Checkbox (styled to look like a star), along with the photo view (which has some special behavior to bind with the multiple contact source data on click and so on).
If you just want the look and not the functionality, though, just adding a LinearLayout with a GradientDrawable background containing an ImageView, a TextView, and a Checkbox styled as a star to your activity's layout should get you there a lot more easily without requiring custom widgets.

Android button bar toggle

I am looking for a UI view that imitates the functionality of the
Google Maps directions screen UI control where it allows the user to
pick the type of directions allowed, either Car, Transit or Walking.
Like this --> http://snapplr.com/50rh
The widget is essentially three buttons laid out horizontally with
rounded corners only on the left of the first and right of the thirdbutton.
I can't see a standard way to do this, although it seems like it would
be a common widget. Is there some other standard way of presenting a
multi-choice grouping in a horizontal layout as a "single" layout
object.
I am not aware of a button bar widget in the Android SDK. You would create one with ImageButtons in a LinearLayout, with custom backgrounds for all (to give the gloss-black look, to handle the varied sets of corners, and to handle the selected vs. not imagery). You would then need to add the toggling smarts, such that pushing one makes it selected and makes the others in the layout not selected.
If you wish to stick to simpler existing widgets, Spinner, RadioButton, or ToggleButton would be the most likely candidates.
I don't think there is a built-in way to do it. I can think of two ways to accomplish it. The first would be to create a custom style for the TabWidget. The second would be to create your own custom widget. Making a TabWidget style might be more flexible because you could easily come back and add or remove tabs and it would update accordingly. Making your own custom widget would give you much more control over how the widget looks and acts. So really you need to see what would be the best fit for what you're trying to do.
Best button bar I've found: http://androidworkz.com/2011/02/04/custom-menu-bar-tabs-how-to-hook-the-menu-button-to-showhide-a-custom-tab-bar/
It's thought to be used as a replacement for the menu, but I believe it's also great for a custom button bar. I'm actually gonna integrate it in my app straight away :-)
Kudos for androidworkz, the original author.
I think the power control widget does what you want. Looking at the source for the widget, it uses a combination of LinearLayouts & ImageViews to achieve the layout.
Layout file: https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/res/layout/widget.xml
Source code: https://android.googlesource.com/platform/packages/apps/Settings/+/froyo-release/src/com/android/settings/widget/SettingsAppWidgetProvider.java

Categories

Resources