How to restrict bounds for Translate Animation for a view in Android?
-
Let me explain the scenario that I want to achieve:- Consider the below as the Layout I have inside a Parent_Linearlayout: [Linear Layout] (Fill_Parent, Wrap_Content) [ScrollView] Activity's setContentView is set to the Parent_Linearlayout In the application, when a condition is met, I want the Scrollview to be removed from the screen and instead put another View in its place.<br> I've been able to do this, When I remove the ScrollView, I'm applying translate Animation to it so that it seems as if the View has gone to the top, before removing it. But when the animation occurs, the ScrollView translates OVER the Linear layout present above it. How do I restrict it, so that the scrollview does not go over the linear layout, but disappears at the base of the Linearlayout. I want the linearlayout to always stay visible.. I've been trying to do this from quite some time, but I've not been able to get desired results.. Could someone kindly help me out here??
-
Answer:
I don't quite understand your description of your layout, but the Android view system is drawn based on the ordering of the views in the hierarchy. Views added later to a parent are drawn after those added earlier. So if you always want the LinearLayout to be drawn on top of the ScrollView if/when they overlap, then declare or add the ScrollView object to its parent before the LinearLayout object. In thinking more about this, I suppose the ordering here is important because you want the ScrollView to be placed below the LinearLayout in the parent of both of these views. Putting the ScrollView first (and thus having it painted first) would then put it above the other LinearLayout, which isn't what you want. There are various ways to achieve what you want. For example, you could use a RelativeLayout as the parent of the views, then the ordering is not important. Alternatively, you could place the ScrollView inside another LinearLayout (and that LinearLayout would be the second child of the overall parent layout). Then when you animate the ScrollView, it would be clipped by its immediate parent, which I believe would give you the effect you're looking for (make sure that setClipChildren() is set to true on this new intermediate LinearLayout, which it is by default, otherwise it won't clip the ScrollView as it animates out of it). Note that this approach would necessitate different animation values, since you are now animating the view outside of its parent (the new LinearLayout).
Kiran Parmar at Stack Overflow Visit the source
Related Q & A:
- How to get the group ID of a contact in android?Best solution by Stack Overflow
- How do I apply the overlay to draw a line in maps Android?Best solution by Stack Overflow
- How to upload the image to a server in Android PhoneGap?Best solution by Stack Overflow
- How to restrict access to a sql server database from Azure?Best solution by Stack Overflow
- How to add new view at the top of an existing view in Android?Best solution by Stack Overflow
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.