日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android autolayout教程,Android中AutoLayout的使用

發(fā)布時間:2023/12/10 Android 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android autolayout教程,Android中AutoLayout的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一.引入AutoLayout

app->build.gradle中

dependencies {

compile 'com.zhy:autolayout:1.4.5'

}

二.清單文件中配置

在AndroidManifest中注明設(shè)計的尺寸

三.使用

讓你的Activity繼承自AutoLayoutActivity,如果不希望繼承AutoLayoutActivity,可以在編寫布局文件時,將

LinearLayout -> AutoLinearLayout

RelativeLayout -> AutoRelativeLayout

FrameLayout -> AutoFrameLayout

四.配置

默認(rèn)使用的高度是設(shè)備的可用高度,也就是不包括狀態(tài)欄和底部的操作欄的,如果你希望拿設(shè)備的物理高度進(jìn)行百分比化:

可以在Application的onCreate方法中進(jìn)行設(shè)置:

AutoLayoutConifg.getInstance().useDeviceSize();

五.ListView、RecyclerView類的Item的適配

對于ListView

對于ListView這類控件的item,默認(rèn)根局部寫“px”進(jìn)行適配是無效的,因為外層非AutoXXXLayout,而是ListView。但是,不用怕,一行代碼就可以支持了:

@Override

public View getView(int position, View convertView, ViewGroup parent)

{

ViewHolder holder = null;

if (convertView == null)

{

holder = new ViewHolder();

convertView = LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);

convertView.setTag(holder);

//對于listview,注意添加這一行,即可在item上使用高度

AutoUtils.autoSize(convertView);

} else

{

holder = (ViewHolder) convertView.getTag();

}

return convertView;

}

對于RecyclerView

public ViewHolder(View itemView)

{

super(itemView);

AutoUtils.autoSize(itemView);

}

//...

@Override

public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType)

{

View convertView = LayoutInflater.from(mContext).inflate(R.layout.recyclerview_item, parent, false);

return new ViewHolder(convertView);

}

注意:一定要記得LayoutInflater.from(mContext).inflate使用三個參數(shù)的方法!

六.擴(kuò)展

對于其他繼承系統(tǒng)的FrameLayout、LinearLayout、RelativeLayout的控件,比如CardView,如果希望再其內(nèi)部直接支持”px”百分比化

package com.zhy.sample.view;

import android.content.Context;

import android.support.v7.widget.CardView;

import android.util.AttributeSet;

import com.zhy.autolayout.AutoFrameLayout;

import com.zhy.autolayout.utils.AutoLayoutHelper;

public class AutoCardView extends CardView

{

private final AutoLayoutHelper mHelper = new AutoLayoutHelper(this);

public AutoCardView(Context context)

{

super(context);

}

public AutoCardView(Context context, AttributeSet attrs)

{

super(context, attrs);

}

public AutoCardView(Context context, AttributeSet attrs, int defStyleAttr)

{

super(context, attrs, defStyleAttr);

}

@Override

public AutoFrameLayout.LayoutParams generateLayoutParams(AttributeSet attrs)

{

return new AutoFrameLayout.LayoutParams(getContext(), attrs);

}

@Override

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)

{

if (!isInEditMode())

{

mHelper.adjustChildren();

}

super.onMeasure(widthMeasureSpec, heightMeasureSpec);

}

}

7.實例

activity_main.xml

"1.0" encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:background="@color/white"

android:layout_marginTop="@dimen/x36"

android:layout_marginLeft="@dimen/x36"

android:layout_marginRight="@dimen/x36"

android:orientation="vertical">

"match_parent"

android:layout_height="wrap_content"

android:background="@drawable/border_style_left_gray"

android:orientation="vertical">

"match_parent"

android:layout_height="@dimen/x132">

"@+id/discount_recharge_card"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentLeft="true"

android:layout_marginLeft="@dimen/x46"

android:layout_marginTop="@dimen/x44"

android:text="@string/discount_recharge_card"

android:textSize="@dimen/x60"/>

"@+id/tv_consume_info"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignBottom="@id/discount_recharge_card"

android:layout_alignParentRight="true"

android:layout_marginRight="@dimen/x52"

android:gravity="center"

android:text="@string/consumption_situation"

android:textColor="@color/font_ff7f18"

android:textSize="@dimen/x42"/>

"

android:layout_marginRight="@dimen/x52"

android:background="@color/gray_line"/>

@+id/recharge_card_content"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginBottom="@dimen/x44"

android:layout_marginLeft="@dimen/x46"

android:layout_marginTop="@dimen/x44"

android:lineSpacingExtra="@dimen/x5"

android:text="@string/cardnumber"

android:textColor="@color/c_6"

android:textSize="@dimen/x42"/>

@color/background"

android:layout_width="match_parent"

android:layout_height="@dimen/x30"/>

在 1280*720 上的顯示效果:

在 1920*1080 上的顯示效果:

下載

https://github.com/zeke123/AutoLayout

總結(jié)

以上是生活随笔為你收集整理的android autolayout教程,Android中AutoLayout的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。