Здесь я использую представление и код, как указано ниже.
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TableRow
android:id="@+id/tab_stone_info"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_marginTop="1dp"
android:background="@color/styleBreakTabColor"
android:weightSum="9">
<TextView
android:id="@+id/stone_Type"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Type"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Shape"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Shape"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Qlty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Quality"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Grade"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Grade"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Qty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Qty"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Wt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Wt"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_MMSize"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/MMSize"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_Setting"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/Setting"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
<TextView
android:id="@+id/stone_SettMode"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="@drawable/cell_shape"
android:gravity="center"
android:text="@string/SettingMode"
android:textColor="@color/txtStyleBreakup"
android:textSize="12sp" />
</TableRow>
<RelativeLayout
android:id="@+id/layout_tab_stone_info_value"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.mindtech.ExpandableHeightListView
android:id="@+id/listviewstone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#00000000"
android:gravity="center"
android:horizontalSpacing="2dp"
android:isScrollContainer="false"
android:stretchMode="columnWidth"
android:verticalSpacing="20dp"
/>
</RelativeLayout>
</LinearLayout>
И я использую epandablelistview как класс ниже.
public class ExpandableHeightListView extends ListView
{
boolean expanded = false;
public ExpandableHeightListView(Context context, AttributeSet attrs,
int defStyle)
{
super(context, attrs, defStyle);
}
public ExpandableHeightListView(Context context)
{
super(context);
}
public ExpandableHeightListView(Context context, AttributeSet attrs)
{
super(context, attrs);
}
public boolean isExpanded()
{
return expanded;
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
// int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2,
// MeasureSpec.AT_MOST);
//
// super.onMeasure(widthMeasureSpec, expandSpec);
// int heightMeasureSpec_custom = MeasureSpec.makeMeasureSpec(
// Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
// super.onMeasure(widthMeasureSpec, heightMeasureSpec_custom);
// ViewGroup.LayoutParams params = getLayoutParams();
// params.height = getMeasuredHeight();
if (isExpanded())
{
int expandSpec = MeasureSpec.makeMeasureSpec(MEASURED_SIZE_MASK,
MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
}
else
{
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
public void setExpanded(boolean expanded)
{
this.expanded = expanded;
}
}
Я передаю этот вопрос, но не получил правильного ответа. Сетка изображений внутри ScrollView
Основная проблема возникает, когда высота первой строки не больше второй или другой. если длина всего содержимого строки одинакова, проблем нет.