Ich habe einen Viewpager, der Elemente in einem 3 x 3 anzeigt. Dieser Viewpager ist Teil eines Layouts mit anderen Ansichten, so dass die Höhe basierend auf der Anzahl der Elemente auf der Seite dynamisch festgelegt werden muss.So fügen Sie dynamische Viewpager-Höhe hinzu
Auf der Grundlage dieser Frage ich eine benutzerdefinierte viewpager erstellt haben die onMeasure wie zwingende so:
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
try {
View child = getChildAt(mCurrentPagePosition);
if (child != null) {
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight() * 3;
heightMeasureSpec = MeasureSpec.makeMeasureSpec(h, MeasureSpec.EXACTLY);
}
} catch (Exception e) {
e.printStackTrace();
}
int count = this.getChildCount();
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
Das die Viewpager erweitert, wie dies in einer Reihe drei Elemente anzuzeigen:
Ich bin auf der Suche nach einer Möglichkeit, die Höhe entweder
int h = child.getMeasuredHeight() * 1;
dynamisch festzulegen 0
oder
int h = child.getMeasuredHeight() * 3;
Basierend auf der Anzahl der Elemente in Seite angezeigt, so kann ich die Höhe dynamisch schrumpfen. Jeder Zeiger wird geschätzt.
und
Danke, aber das hat die Höhe des Viewpagers nicht verändert. Es gab mir einige Denkanstöße und ich werde weiter erforschen / –