Ich habe einen relativen Layout-Abschnitt. Darin muss ich programmgesteuert mehrere anklickbare Textansichten hinzufügen, die in der Breite variieren können. Ich brauche sie, um nacheinander zu erscheinen. Wenn eine textView eine Breite hat, die nicht in den verbleibenden Platz der aktuellen Zeile passt, sollte sie auf ähnliche Weise unterhalb der Zeile erscheinen.Fügen Sie mehrere textViews (mit variablen Breiten) in relativeLayout nacheinander
Ich brauche etwas wie folgt aus:
Was ich bisher geschafft haben, ist dieser Code unter:
public static void updateWordsListingOnUi(final ArrayList<String> wordsList) { //TODO: incomplete and may be inefficient
mUiHandler.post(new Runnable() {
@Override
public void run() {
TextView textView;
wordsListingContainer.removeAllViewsInLayout(); //TODO
for (final String word : wordsList)
{
textView = new TextView(context);
textView.setText(word);
textView.setClickable(true);
textView.setPadding(1,1,10,1);
if (wordsList.indexOf(word)%2 == 0) {
textView.setBackgroundColor(context.getResources().getColor(R.color.colorPrimary));
}
else {
textView.setBackgroundColor(context.getResources().getColor(R.color.colorAccent));
}
textView.setId(wordsList.indexOf(word)); //give IDs from 0 - (maxSize-1)
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(context, word, Toast.LENGTH_SHORT).show();
}
});
if(wordsList.indexOf(word) > 0) {
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
layoutParams.addRule(RelativeLayout.RIGHT_OF, textView.getId()-1); //TODO
wordsListingContainer.addView(textView,layoutParams);
}
else {
wordsListingContainer.addView(textView);
}
}
}
});
}
Dies macht die teilweise Aufgabe. Es bringt Textansichten nacheinander, aber wenn nicht genügend Platz vorhanden ist, wird es nicht in die nächste Zeile verschoben. Ich kann mir nicht vorstellen, wie ich das machen kann.
sind es mehrere Bibliotheken, die Ihnen dabei helfen können. Die meisten verwenden 1 benutzerdefinierte Textansicht, in der Sie einzelne anklickbare Elemente "umhüllen" können. Darauf kommt es an, dass es https://github.com/eyeem/chips-android ist, aber du kannst sicher Google für mehr. – Budius