4

У меня возникла проблема с тем, что нижняя часть моего ListView и ImageButton отключается при загрузке приложения на телефон или при использовании эмулятора. Я мог бы просто использовать поля или дополнения, но разве это не было бы специфичным для устройства? Я хочу, чтобы мое приложение выглядело так, как я хочу, независимо от размера экрана. Вот мой код:Проект Android Studio: нижняя часть пользовательского интерфейса отключена

Класс:

public class Cookbook extends Fragment { 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     String[] items = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"}; 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity().getApplicationContext(), 
         R.layout.row_layout, 
         items); 

     View view = inflater.inflate(R.layout.frag_cookbook, container, false); 
     ListView list = (ListView) view.findViewById(R.id.listView); 
     list.setAdapter(adapter); 


     return view; 
    } 
} 

Макет XML:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffffff"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="fill" 
     android:id="@+id/listView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" 
     android:background="#f9e48f" /> 

    <ImageButton 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_add" 
     android:background="@null" 
     android:layout_gravity="end|bottom" 
     android:layout_alignParentBottom="true" 
     android:baselineAligned="false" 
     android:layout_alignParentEnd="true" 
     android:layout_marginBottom="1dp" /> 


</RelativeLayout> 

Андроида студия просмотр выглядит следующим образом:

Android Studio Preview

Но когда эмуляция он или загружает его на телефон, он выглядит так:

Emulated UI display

+1

Кажется, что скриншоты, которые вы добавили, различны, откуда появились вкладки? –

+0

введите основное действие xml, где вы нажимаете фрагмент из –

ответ

1

Это потому, что вы используете CoordinatorLayout с ListView. Вы можете изменить свою реализацию на RecyclerView, чтобы получить правильный свиток.

или если вы tagetting выше 5.0, вы можете использовать следующий фрагмент кода

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { listView.setNestedScrollingEnabled(true); }

Я думаю CoordinatorLayout работает только с детьми NestedScrollingChild.

+0

. Я изменил макет на Relative и установил ViewPager под панелью приложений. Спасибо за совет! – EmacsVI

0

У меня это случилось со мной до недавнего времени. Рекомендую также разместить styles.xml.

Виновником для меня эта строка кода или что-то подобное:

<item name="android:windowTranslucentStatus">true</item>

Вот вопрос я отвечал с такой же вопрос: Layout is under StatusBar and Soft Keys

0

В Android Design Library, ну FloatingActionButton предполагается чтобы быть в пределах CoordinatorLayout, не в пределах любых других видов ex: вид фрагмента в одной из вкладок выше. поэтому попробуйте добавить FloatingActionButton в ваш main_layout, а затем просто свяжитесь с деятельностью, чтобы показать/скрыть FAB и сделать необходимые клики.

0

Введите нижеприведенный код в onCreateView, я думаю, он будет работать.

View decorView = getWindow().getDecorView(); 
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; 
decorView.setSystemUiVisibility(uiOptions); 
Смежные вопросы