Fix unexpected truncation again.
Unexpected truncation happens again after [1]. This is fixed by setting match_parent into the container LinearLayout. For the unexpected truncation of Holo Theme is came from other but related root cause. To calculate the window and container width, need to add container padding in addition to the maximum width of the text view. Otherwise the width of the container view will be shrunk and the contents will be truncated. This only happens on Holo Theme since the padding of the container is zero on Material Theme. I manually confirmed this CL doesn't revive following issues - 28034210 - 27341560 [1]: I67886a752ef110d3433dddd6aa8447a9027f8e19 [2]: I69b258687b4bf5510d9b2c3e690c88106bf893f5 Bug: 28266493 Bug: 28281740 Change-Id: Ie6d274714ac08080dc22aeb8ecd8b7729cb634cd
This commit is contained in:
@@ -3251,6 +3251,7 @@ public class Editor {
|
||||
private final SuggestionSpanInfo mMisspelledSpanInfo = new SuggestionSpanInfo();
|
||||
private int mContainerMarginWidth;
|
||||
private int mContainerMarginTop;
|
||||
private LinearLayout mContainerView;
|
||||
|
||||
private class CustomPopupWindow extends PopupWindow {
|
||||
@Override
|
||||
@@ -3288,20 +3289,19 @@ public class Editor {
|
||||
protected void initContentView() {
|
||||
final LayoutInflater inflater = (LayoutInflater) mTextView.getContext().
|
||||
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
|
||||
final ViewGroup relativeLayout = (ViewGroup) inflater.inflate(
|
||||
mContentView = (ViewGroup) inflater.inflate(
|
||||
mTextView.mTextEditSuggestionContainerLayout, null);
|
||||
|
||||
final LinearLayout suggestionWindowContainer =
|
||||
(LinearLayout) relativeLayout.findViewById(
|
||||
com.android.internal.R.id.suggestionWindowContainer);
|
||||
mContainerView = (LinearLayout) mContentView.findViewById(
|
||||
com.android.internal.R.id.suggestionWindowContainer);
|
||||
ViewGroup.MarginLayoutParams lp =
|
||||
(ViewGroup.MarginLayoutParams) suggestionWindowContainer.getLayoutParams();
|
||||
(ViewGroup.MarginLayoutParams) mContainerView.getLayoutParams();
|
||||
mContainerMarginWidth = lp.leftMargin + lp.rightMargin;
|
||||
mContainerMarginTop = lp.topMargin;
|
||||
mClippingLimitLeft = lp.leftMargin;
|
||||
mClippingLimitRight = lp.rightMargin;
|
||||
|
||||
mSuggestionListView = (ListView) relativeLayout.findViewById(
|
||||
mSuggestionListView = (ListView) mContentView.findViewById(
|
||||
com.android.internal.R.id.suggestionContainer);
|
||||
|
||||
mSuggestionsAdapter = new SuggestionAdapter();
|
||||
@@ -3314,9 +3314,7 @@ public class Editor {
|
||||
mSuggestionInfos[i] = new SuggestionInfo();
|
||||
}
|
||||
|
||||
mContentView = relativeLayout;
|
||||
|
||||
mAddToDictionaryButton = (TextView) relativeLayout.findViewById(
|
||||
mAddToDictionaryButton = (TextView) mContentView.findViewById(
|
||||
com.android.internal.R.id.addToDictionaryButton);
|
||||
mAddToDictionaryButton.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
@@ -3349,7 +3347,7 @@ public class Editor {
|
||||
}
|
||||
});
|
||||
|
||||
mDeleteButton = (TextView) relativeLayout.findViewById(
|
||||
mDeleteButton = (TextView) mContentView.findViewById(
|
||||
com.android.internal.R.id.deleteButton);
|
||||
mDeleteButton.setOnClickListener(new View.OnClickListener() {
|
||||
public void onClick(View v) {
|
||||
@@ -3461,7 +3459,8 @@ public class Editor {
|
||||
mDeleteButton.measure(horizontalMeasure, verticalMeasure);
|
||||
width = Math.max(width, mDeleteButton.getMeasuredWidth());
|
||||
|
||||
width += mContainerMarginWidth;
|
||||
width += mContainerView.getPaddingLeft() + mContainerView.getPaddingRight()
|
||||
+ mContainerMarginWidth;
|
||||
|
||||
// Enforce the width based on actual text widths
|
||||
mContentView.measure(
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:id="@+id/suggestionWindowContainer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:elevation="@android:dimen/text_edit_floating_toolbar_elevation"
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
android:layout_height="wrap_content">
|
||||
<LinearLayout
|
||||
android:id="@+id/suggestionWindowContainer"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="?android:attr/floatingToolbarPopupBackgroundDrawable"
|
||||
android:elevation="@android:dimen/text_edit_floating_toolbar_elevation"
|
||||
|
||||
Reference in New Issue
Block a user