Intereting Posts
В чем разница между getIntent () и получением намерения от savedInstanceState? Получение UnknownLengthHttpInputStream при получении InputStream из HttpURLConnection в android Использует библиотеку событий, такую ​​как Otto или EventBus, рекомендуемый способ обработки отношений между действиями, фрагментами и фоновыми потоками Имитировать медленное подключение к Интернету на устройстве REAL? Как реализовать мою собственную схему URI на Android Я не могу получить регистрационный идентификатор от Android GCM Android: установите быстрые клавиши Каков жизненный цикл публичной статической переменной в Android? Невозможно найти символьную переменную GoogleAuthUtil после обновления до сервисов Google Play 9.0.0 Android AppWidget не отображается в меню в сотах до перезагрузки Получить идентификатор TextView в фрагменте из FragmentActivity в ViewPager Почему «BluetoothAdapter: startLeScan (): null» «произошел, когда BLE Scan в Android? Android – приложение для whitelabel Ошибка манифестного слияния при попытке добавить мой собственный логотип в приложение для Android – Android Studio Уже управляет GoogleApiClient с идентификатором 0 В FRAGMENT

Android: layout_height 50% от размера экрана

Привет всем Я только что реализовал ListView внутри LinearLayout, но мне нужно определить высоту LinearLayout (она должна быть 50% высоты экрана).

<LinearLayout android:id="@+id/widget34" android:layout_width="300px" android:layout_height="235px" android:orientation="vertical" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> <ListView android:id="@+id/lv_events" android:textSize="18sp" android:cacheColorHint="#00000000" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> </ListView> </LinearLayout> 

Это возможно?

Я сделал что-то подобное для кнопки и EditText, но, похоже, не работает над макетами.

Это мой код:

  //capture the size of the devices screen Display display = getWindowManager().getDefaultDisplay(); double width = display.getWidth(); //my EditText will be smaller than full screen (80%) double doubleSize = (width/5)*4; int editTextSize = (int) doubleSize; //define the EditText userName = (EditText) this.findViewById(R.id.userName); password = (EditText) this.findViewById(R.id.password); //set the size userName.setWidth(editTextSize); password.setWidth(editTextSize); 

Спасибо! 🙂

Solutions Collecting From Web of "Android: layout_height 50% от размера экрана"

Установите его layout_height="0dp" *, добавьте пустой View под ним (или пустой ImageView или просто FrameLayout ) с layout_height равным 0dp , и установите оба представления, чтобы иметь layout_weight="1"

Это будет растягивать каждый вид одинаково, поскольку он заполняет экран. Поскольку оба имеют одинаковый вес, каждый из них будет занимать 50% экрана.

* См. Комментарий от adamp о том, почему это работает, и другие действительно полезные лакомые кусочки.

Это легко сделать в xml. Установите свой верхний контейнер как LinearLayout и установите атрибут ориентации по своему усмотрению. Затем внутри этого места два линейных выхода, которые имеют «заполнение родителя» по ширине и высоте. Наконец, установите атрибут весов этих двух линейных выходов в 1.

Это мой андроид: layout_height = 50% активность:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <LinearLayout android:id="@+id/alipay_login" style="@style/loginType" android:background="#27b" > </LinearLayout> <LinearLayout android:id="@+id/taobao_login" style="@style/loginType" android:background="#ed6d00" > </LinearLayout> </LinearLayout> 

стиль:

 <style name="loginType"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">match_parent</item> <item name="android:layout_weight">0.5</item> <item name="android:orientation">vertical</item> </style> 

Лучшим способом является использование

Layout_height = "0dp" layout_weight = "0.5"

например

 <WebView android:id="@+id/wvHelp" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" /> <TextView android:id="@+id/txtTEMP" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="0.5" android:text="TextView" /> 

WebView, TextView имеют 50% высоты экрана

Вы должны сделать что-то вроде этого:

 <LinearLayout android:id="@+id/widget34" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true"> <ListView android:id="@+id/lv_events" android:textSize="18sp" android:cacheColorHint="#00000000" android:layout_height="1" android:layout_width="fill_parent" android:layout_weight="0dp" android:layout_below="@+id/tv_scanning_for" android:layout_centerHorizontal="true" /> </LinearLayout> 

Также используйте dp вместо px или прочитайте об этом здесь .

Это так просто, если вы хотите разделить экран на две части по вертикали (верхние 30% + нижние 70%)

 <LinearLayout android:id="@+id/LinearLayoutTop" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="2"> </LinearLayout> <LinearLayout android:id="@+id/LinearLayoutBottom" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> </LinearLayout> 

Чтобы убедиться, что высота представления составляет 50% экрана, мы можем создать два суб LinearLayouts в LinearLayout. Каждый из дочерних LinearLayout должен иметь « android: layout_weight » 0,5, чтобы покрыть половину экрана

Родительский LinearLAyout должен иметь « андроид: ориентация », установленный на вертикальный

,

,

Вот код для вашей справки …. этот код содержит две кнопки высотой наполовину экрана

 <LinearLayout android:orientation="vertical" android:layout_height="match_parent"> <LinearLayout android:layout_weight="0.5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:padding="10dp" android:layout_weight="0.5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="button1" android:id="@+id/button1" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentBottom="true" /> <Button android:padding="10dp" android:layout_weight="0.5" android:layout_width="wrap_content" android:layout_height="fill_parent" android:text="button2" android:id="@+id/button2" android:layout_alignParentTop="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" android:layout_alignParentBottom="true" /> </LinearLayout> <LinearLayout android:layout_weight="0.5" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> </LinearLayout> </LinearLayout> 

Этот вид работал для меня. Хотя FAB не плавает самостоятельно, но теперь его не сбивают.

Соблюдайте веса, указанные внутри LinearLayout

 <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:id="@+id/andsanddkasd"> <android.support.v7.widget.RecyclerView android:id="@+id/sharedResourcesRecyclerView" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="4" /> <android.support.design.widget.FloatingActionButton android:id="@+id/fab" android:layout_width="wrap_content" android:layout_height="0dp" android:layout_gravity="bottom|right" android:src="@android:drawable/ic_input_add" android:layout_weight="1"/> </LinearLayout> 

Надеюсь это поможет 🙂

Для достижения этого weightSum={amount of weight to distribute} определите внешний линейный макет с weightSum={amount of weight to distribute} .

Он определяет максимальную сумму веса. Если не указано, сумма вычисляется путем добавления layout_weight всех дочерних элементов. Это может быть использовано, например, для того, чтобы дать одному ребенку 50% от общего доступного пространства, предоставив ему макет-вес 0,5 и установив weightSum в 1.0. В другом примере будет установлен weightSum = 2, и если два ребенка layout_weight=1 То каждый получит 50% доступного пространства.

WeightSum зависит от количества детей в родительском макете.