Я сделал это с LinearLayout и используя TextView в Автоперенос функцию IWAS в состоянии обнаружить, если TextView завернуты. Используя ViewTreeObserver и просматривая количество строк для текстового представления, я программно устанавливаю представление в Gone.
final TextView text = findViewById(R.id.textview1);
text.getViewTreeObserver().addOnGlobalLayoutListener(
new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
int lineCount = text.getLineCount();
Log.d(this, "LineCount = " + lineCount);
if (lineCount > 1) {
text.setVisibility(View.GONE);
}
getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
});
Просто чтобы убедиться, что ваши макеты не ellipsize или что вы установите SingleLine или MaxLines к истинным или 1. Я поставил Макс линию на одной TextView Я хочу пошел в 2 так, что он будет завернуть, если он не подойдет.
Вы можете правильно настроить свой макет для внесения изменений, можете ли вы разместить свой макет xml? –
Возможный дубликат [Android - Как узнать, отображается ли наложение другого вида в RelativeLayout] (http://stackoverflow.com/questions/24047644/android-how-to-know-if-a-view-overlay-another- view-in-relativelayout) – petey
У меня такая же проблема, вы хотите исключить (GONE) представление, если они накладываются, программно. Если я найду ответ, я отправлю его на этот вопрос. Я подозреваю, что это может быть в прослушивателях ViewTreeObserver. – JPM