Android ListView setVisibility not working - android

I have a ListView in my RelativeLayout that is supposed to be hidden during a search is executed. Therefore I implemented the following code:
mProgressView.setVisibility(View.VISIBLE);
mSearchListView.setVisibility(View.INVISIBLE);
mSearchAdapter.search(query).onSuccess(new Continuation<Set<Integer>, Object>() {
#Override
public Object then(final Task<Set<Integer>> task) throws Exception {
runOnUiThread(new Runnable() {
#Override
public void run()
mSearchAdapter.notifyDataSetChanged();
mProgressView.setVisibility(View.INVISIBLE);
mSearchListView.setVisibility(View.VISIBLE);
}
});
return null;
}
});
Unfortunately, the ListView stays visible. The ProgressView start to spin successfully but the list view remains visible. Any hints on what to do?

When you say it stays 'visible' do you mean you see data in the listview or just that some space seems to be occupied by an invisible listview?
If the latter is the case then you should try making the listview GONE as -
mSearchListView.setVisibility(View.GONE);
instead of making it invisible

Related

Programmatically make a click or touch an item in recyclerview

How to force a click or touch an item on a recyclerview?
I found people talking to use a command recyclerView.findViewHolderForAdapterPosition(0).itemView.performClick() but recyclerView.findViewHolderForAdapterPosition(0) always returns null!
I want initially that the first recyclerview item is clicked/ touched.
new Handler().postDelayed(new Runnable() {
#Override
public void run() {
recyclerView.findViewHolderForAdapterPosition(position).itemView.performClick();
}
},100);

Android Add Items One By One Into a LinearLayout

I'm new to Android and I'm trying to find out how to do that:
- I have an activity with a ScrollView and inside it I have a LinearLayout (R.id.my_layout)
- I nedd to add TextView programmatically so I'm doing this:
I load the main XML layout via seContentView, I refer to my LinearLayout inside the ScrollView as "mLayout" and so on.
I load a list of names from a file and with a function called populateList()I do:
private void populateList() {
try {
for (final String team : mTeams) {
rCount++;
addRow(team);
}
}
The addRow() method just create a new LinearLayout (mRow), a TextView, 2 Button, add the TextView and the 2 Buttons to the LinearLayout, and then I use addView to add the new mRow to the mLayout.
Everything is working fine, but the ScrollView is shown only when i finished creating the list (so when the populateList() ends). What I would like to do is to show the rows one by one in sequence to give the activty a better look and a bit of animation.
Is there a way to do this?
I hope i was able to explain it :-)
Thank you
new Thread(new Runnable() { // i am creating the new thread
#Override
public void run() {
// so call populateList() function here
}
}).start();
and for your addRow(String string) method the place you call View.addView(); edit it this way and place the following code in your addRow(String string) method
View.post(new new Runnable() {// view here is mlayout the scrollView.
#Override
public void run() {
mlayout.addView(yourview); // note yourview should be final,
//eclipse might help you with that
}
});
remember to declare mlayout globally, so you do not have to attach final

Android scroll up

I have two buttons Button 1, Button 2 placed horizontally like tabs. On Click of these button I am adding Linear Layout in Scroll View.
Now suppose I am clicking Button 1 and scroll down and immediately switch or click to Button 2 that scroll applies on newly added layout. I want every time on click of button content should scroll to top.
I have tried scrollview.scrollT0(0,0) and scrollview.scrollTo(0,scrollview.getTop()) but none of them is working.
I've ran into these types of issues before.
I suggest trying the following:
scrollview.post(new Runnable() {
#Override
public void run() {
scrollview.scrollTo(0, 0);
}
});
The reason this works is forces the action in the Main Thread which is where all UI Activity happens (safely, of course).
Try this . Just it is sample
private void scrollMyListViewToBottom() {
your_list.post(new Runnable() {
public void run() {
if (!running) {
// Select the last row so it will scroll into view...
your_list.setSelection(your_list.getCount() - 1);
running = true;
}
}
});
Note :
Before call this method just change Boolean running = false;

How can i update listview background dynamically

I have tried various methods but none of them is working, what i what is changing the background image of cell of listview for this i have different images for cell. The content remain same. This is what i have tried yet.
CountryList.post(new Runnable(){
public void run() {
CountryList.invalidateViews();
}
});
// and this one also.
runOnUiThread(new Runnable() {
public void run() {
CountryList.invalidateViews();
}
});
As i dont content to be reloaded.
For this you can iterate over child components of list-view and get background of each one of them and change their background, for example get child at and so on.

Continuously Auto-Scrolling ListView

I have a Listview in Android. I want that the Listview continuously scrolls from top to bottom by itself. It should happen infinitely
And obviously I want to capture the click on any of the items of the Listview, post that the scroll will continue
Anybody having experience with such an implementation. Please help !!
http://groups.google.com/group/android-developers/msg/753a317a8a0adf03
To scroll automatically, you can use this: listView.smoothScrollToPosition(position);
private void scrollMyListViewToBottom() {
myListView.post(new Runnable() {
#Override
public void run() {
// Select the last row so it will scroll into view...
listView.smoothScrollToPosition(myListAdapter.getCount() - 1);
// Just add something to scroll to the top ;-)
}
});
}

Categories

Resources