Skip to content

Commit 8fae0ff

Browse files
committedNov 21, 2021
Improve Auto Complete drop down menu position to be below the current cursor position
1 parent 7342cd7 commit 8fae0ff

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed
 

‎codeview/src/main/java/com/amrdeveloper/codeview/CodeView.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,6 @@ public class CodeView extends AppCompatMultiAutoCompleteTextView {
5151

5252
private final Handler mUpdateHandler = new Handler();
5353
private MultiAutoCompleteTextView.Tokenizer mAutoCompleteTokenizer;
54-
private final float displayDensity = getResources().getDisplayMetrics().density;
5554

5655
private static final Pattern PATTERN_LINE = Pattern.compile("(^.+$)+", Pattern.MULTILINE);
5756
private static final Pattern PATTERN_TRAILING_WHITE_SPACE = Pattern.compile("[\\t ]+$", Pattern.MULTILINE);
@@ -415,12 +414,12 @@ public void showDropDown() {
415414
int position = getSelectionStart();
416415
Layout layout = getLayout();
417416
int line = layout.getLineForOffset(position);
417+
int lineButton = layout.getLineBottom(line);
418+
int dropDownVerticalOffset = lineButton + 140;
419+
int dropDownHorizontalOffset = (int) layout.getPrimaryHorizontal(position);
420+
setDropDownVerticalOffset(dropDownVerticalOffset);
421+
setDropDownHorizontalOffset(dropDownHorizontalOffset);
418422

419-
float verticalDistanceInDp = (750 + 140 * line) / displayDensity;
420-
setDropDownVerticalOffset((int)verticalDistanceInDp);
421-
422-
float horizontalDistanceInDp = layout.getPrimaryHorizontal(position) / displayDensity;
423-
setDropDownHorizontalOffset((int) horizontalDistanceInDp);
424423
super.showDropDown();
425424
}
426425

0 commit comments

Comments
 (0)