У меня есть расширяемый список, внутри которого первый ребенок - Gridview. здесь у меня был вопрос об уменьшении высоты сетки. что я решил с помощью этого решения: Gridview height gets cut.Элемент GridView не прокручивается внутри Расширяемый список
Теперь я получаю новую проблему, не могу прокрутить элемент gridview под определенной фиксированной высотой. Мне нужно добавить скроллер здесь, потому что есть вероятность, что элемент gridview может динамически расти.
Я могу сделать это с нормальным gridview, но показывая эту раздражающую проблему под расширяемым списком просмотров.
код:
<ExpandableListView
android:id="@+id/Explst"
android:layout_height="400dp"
android:transcriptMode="disabled"
android:layout_width="match_parent"
android:layout_marginTop="0.5dp" />
Gridview в расширяемой список заказного макета:
<mynamespace.ExpandableHeightGridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:columnWidth="90dp"
android:numColumns="auto_fit"
android:verticalSpacing="20dp"
android:horizontalSpacing="2dp"
android:stretchMode="columnWidth"
android:isScrollContainer="false"
android:gravity="center" />
пользовательских expandableheightgridview.cs
mynamespace
{
public class ExpandableHeightGridView :GridView
{
bool _isExpanded = false;
public ExpandableHeightGridView (Context context) : base (context)
{
}
public ExpandableHeightGridView (Context context, IAttributeSet attrs) : base (context, attrs)
{
}
public ExpandableHeightGridView (Context context, IAttributeSet attrs, int defStyle) : base (context, attrs, defStyle)
{
}
public bool IsExpanded {
get { return _isExpanded; }
set { _isExpanded = value; }
}
protected override void OnMeasure (int widthMeasureSpec, int heightMeasureSpec)
{
if (IsExpanded) {
int expandSpec = MeasureSpec.MakeMeasureSpec (View.MeasuredSizeMask, MeasureSpecMode.AtMost);
base.OnMeasure (widthMeasureSpec, expandSpec);
var layoutParameters = this.LayoutParameters;
layoutParameters.Height = this.MeasuredHeight;
} else {
base.OnMeasure (widthMeasureSpec, heightMeasureSpec);
}
base.OnMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
}
Любые предложения/советы/ссылки заметны. Я пробовал это в xamarin.android C#, но даже любые решения для Java android также полезны.
Thanks
Да, я уже это сделал. Expand работает без каких-либо проблем. Но не удалось установить скроллер для этих элементов сетки, который является расширяемым дочерним элементом списка. – Suchith