Merge "Handle null result from getVirtualChildAt()" into mnc-dr1.5-dev
am: d9434699e4
* commit 'd9434699e4ef8c528ce01223ee9ef200bfd693e4':
Handle null result from getVirtualChildAt()
This commit is contained in:
@@ -348,7 +348,6 @@ public class LinearLayout extends ViewGroup {
|
||||
final int count = getVirtualChildCount();
|
||||
for (int i = 0; i < count; i++) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
if (hasDividerBeforeChildAt(i)) {
|
||||
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
|
||||
@@ -377,7 +376,7 @@ public class LinearLayout extends ViewGroup {
|
||||
*/
|
||||
private View getLastNonGoneChild() {
|
||||
for (int i = getVirtualChildCount() - 1; i >= 0; i--) {
|
||||
View child = getVirtualChildAt(i);
|
||||
final View child = getVirtualChildAt(i);
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
return child;
|
||||
}
|
||||
@@ -390,7 +389,6 @@ public class LinearLayout extends ViewGroup {
|
||||
final boolean isLayoutRtl = isLayoutRtl();
|
||||
for (int i = 0; i < count; i++) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
if (hasDividerBeforeChildAt(i)) {
|
||||
final LayoutParams lp = (LayoutParams) child.getLayoutParams();
|
||||
@@ -577,8 +575,9 @@ public class LinearLayout extends ViewGroup {
|
||||
* for an example.</p>
|
||||
*
|
||||
* @param index the child's index
|
||||
* @return the child at the specified index
|
||||
* @return the child at the specified index, may be {@code null}
|
||||
*/
|
||||
@Nullable
|
||||
View getVirtualChildAt(int index) {
|
||||
return getChildAt(index);
|
||||
}
|
||||
@@ -659,7 +658,7 @@ public class LinearLayout extends ViewGroup {
|
||||
*/
|
||||
private boolean allViewsAreGoneBefore(int childIndex) {
|
||||
for (int i = childIndex - 1; i >= 0; i--) {
|
||||
View child = getVirtualChildAt(i);
|
||||
final View child = getVirtualChildAt(i);
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
return false;
|
||||
}
|
||||
@@ -703,7 +702,6 @@ public class LinearLayout extends ViewGroup {
|
||||
// See how tall everyone is. Also remember max width.
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null) {
|
||||
mTotalLength += measureNullChild(i);
|
||||
continue;
|
||||
@@ -822,7 +820,6 @@ public class LinearLayout extends ViewGroup {
|
||||
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null) {
|
||||
mTotalLength += measureNullChild(i);
|
||||
continue;
|
||||
@@ -938,7 +935,6 @@ public class LinearLayout extends ViewGroup {
|
||||
if (useLargestChild && heightMode != MeasureSpec.EXACTLY) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null || child.getVisibility() == View.GONE) {
|
||||
continue;
|
||||
}
|
||||
@@ -981,7 +977,7 @@ public class LinearLayout extends ViewGroup {
|
||||
MeasureSpec.EXACTLY);
|
||||
for (int i = 0; i< count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
if (child.getVisibility() != GONE) {
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
LinearLayout.LayoutParams lp = ((LinearLayout.LayoutParams)child.getLayoutParams());
|
||||
|
||||
if (lp.width == LayoutParams.MATCH_PARENT) {
|
||||
@@ -1047,7 +1043,6 @@ public class LinearLayout extends ViewGroup {
|
||||
// See how wide everyone is. Also remember max height.
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null) {
|
||||
mTotalLength += measureNullChild(i);
|
||||
continue;
|
||||
@@ -1203,7 +1198,6 @@ public class LinearLayout extends ViewGroup {
|
||||
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null) {
|
||||
mTotalLength += measureNullChild(i);
|
||||
continue;
|
||||
@@ -1361,7 +1355,6 @@ public class LinearLayout extends ViewGroup {
|
||||
if (useLargestChild && widthMode != MeasureSpec.EXACTLY) {
|
||||
for (int i = 0; i < count; i++) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
|
||||
if (child == null || child.getVisibility() == View.GONE) {
|
||||
continue;
|
||||
}
|
||||
@@ -1406,7 +1399,7 @@ public class LinearLayout extends ViewGroup {
|
||||
MeasureSpec.EXACTLY);
|
||||
for (int i = 0; i < count; ++i) {
|
||||
final View child = getVirtualChildAt(i);
|
||||
if (child.getVisibility() != GONE) {
|
||||
if (child != null && child.getVisibility() != GONE) {
|
||||
LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) child.getLayoutParams();
|
||||
|
||||
if (lp.height == LayoutParams.MATCH_PARENT) {
|
||||
@@ -1666,9 +1659,8 @@ public class LinearLayout extends ViewGroup {
|
||||
}
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
int childIndex = start + dir * i;
|
||||
final int childIndex = start + dir * i;
|
||||
final View child = getVirtualChildAt(childIndex);
|
||||
|
||||
if (child == null) {
|
||||
childLeft += measureNullChild(childIndex);
|
||||
} else if (child.getVisibility() != GONE) {
|
||||
|
||||
@@ -98,7 +98,7 @@ public class TableRow extends LinearLayout {
|
||||
* {@hide}
|
||||
*/
|
||||
void setColumnCollapsed(int columnIndex, boolean collapsed) {
|
||||
View child = getVirtualChildAt(columnIndex);
|
||||
final View child = getVirtualChildAt(columnIndex);
|
||||
if (child != null) {
|
||||
child.setVisibility(collapsed ? GONE : VISIBLE);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user