I have a ListView where each row has a fixed height.
Each row contains next to some TextView images.
Sometimes the text I want to display is too large, and so I would like to make it scrollable.
So I added (based on Scrolling TextView on Android ) the following lines to my TextView
text.setMaxLines(5); text.setVerticalScrollBarEnabled(true); text.setMovementMethod(ScrollingMovementMethod.getInstance());
This works fine if I use TextView separately, but not when I put a TextView in a ListView:
as soon as I do a vertical scroll, the events seem to be consumed by the ListView.
Any suggestions on how I can make this work?
Below is the full (test) activity (no layout.xml)
public class TestScrollableTextView extends Activity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); //add a ListView ListView list = new ListView(this); layout.addView(list); list.setAdapter(new BaseAdapter() { @Override public View getView(int position, View convertView, ViewGroup parent) { TextView text = new TextView(TestScrollableTextView.this); String s = ""; //add 10 lines of text, all but first are indented for (int i = 0; i < 10; i++) { if(i>0) s+="\t"; s += "position "+position+"; line="+i+"\n"; } text.setText(s); text.setMaxLines(5); text.setVerticalScrollBarEnabled(true); text.setMovementMethod(ScrollingMovementMethod.getInstance()); return text; } @Override public long getItemId(int position) { return 0; } @Override public Object getItem(int position) { return null; } @Override public int getCount() { return 20; } }); setContentView(layout); } }
source share