Ⅰ android 簡書發現搜索框怎麼實現的
1.app默認的桌面名字是工程名,需要更改的話,在Bundle dispaly name 上更改就行了 2.有時候導航條顏色比較深,我們希望狀態欄顯示的顏色能夠變得比較淺的時候就需要更改狀態欄顏色了,那麼修改的方法就是在在Info.plist中設置為NO,同時在響應頁面的代碼中需要添加如下的方法:在需要改變狀態欄顏色的ViewController中ViewDidLoad方法中增加:[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];如果需要在全部View中都變色,可以寫在父類的相關方法中。
Ⅱ 簡書android 布局切換用什麼比較好
一般 IDE 通過 option + 方向鍵左右 (win為 ctrl + 左右方向鍵 )對游標進行單詞的跳動, 但是由於我們使用駝峰式命名較多, 默認的會導致由多個單片語成的駝峰式的首尾跳轉. 還好 AS 可以對這種風格進行設定.
Ⅲ 簡書· Android Studio 2.3 正式版發布,看看有什麼新功能
設計師給我們提供好了各種資源,每個按鈕都要寫一個selector是不是很麻煩?這么這個插件就為解決這個問題而生,你只需要做的是告訴設計師們按照規范命名就好了,其他一鍵搞定。按照不同狀態(normal、pressed)的標准命名後,右鍵文件樹Generate android Selectors見i
Ⅳ android怎麼實現商品分類篩選的功能 簡書
添加DropDownMenu 到你的布局文件,如下
<com.yyy.djk.dropdownmenu.DropDownMenu
android:id="@+id/dropDownMenu"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:ddmenuTextSize="13px" //tab字體大小
app:ddtextUnselectedColor="@color/drop_down_unselected" //tab未選中顏色
app:ddtextSelectedColor="@color/drop_down_selected" //tab選中顏色
app:dddividerColor="@color/gray" //分割線顏色
app:dnderlineColor="@color/gray" //下劃線顏色
app:ddmenuSelectedIcon="@mipmap/drop_down_selected_icon" //tab選中狀態圖標
app:ddmenuUnselectedIcon="@mipmap/drop_down_unselected_icon"//tab未選中狀態圖標
app:ddmaskColor="@color/mask_color" //遮罩顏色,一般是半透明
Ⅳ 簡書· 熟練這些,才會知道 Android studio 有多高效
androidstudio更新sdk的方法有3種。方案一:通過androidstudio
Ⅵ android 怎麼樣讓textview顯示隱藏帶動畫效果簡書
可以通過setAnimator()來設置自定義的動畫。
ViewGroup container = (ViewGroup) findViewById(R.id.container);
LayoutTransition transition = new LayoutTransition();
container.setLayoutTransition(transition);
此外還有一個更簡單地使用方法,在xml文件中我們在容器的中下面一句代碼:
android:animateLayoutChanges="true"
在4.1 JellyBean上還有一個增強的功能,可以在容器內的子view的layout發生變化時也播放動畫,用法如下。
LayoutTransition transition = container.getLayoutTransition();
transition.enableTransitionType(LayoutTransition.CHANGING);
Ⅶ android mvp mvvm怎麼選擇 簡書
1.MVC
傳統的Android App其實都是基於MVC的,Activity,Fragment相當於C,布局相當於V,數據邏輯相當於M
隨著業務的增長Controller里的代碼會越來越臃腫,因為它不只要負責業務邏輯,還要控制View的展示。也就是說Activity、Fragment雜糅了Controller和View,耦合變大。並不能算作真正意義上的MVC。
這也是為什麼後面的MVP會引起很多開發者興趣的原因了。
2.MVP
MVP架構其實可以說與MVC的架構還是有很大的差別的,數據邏輯相當於M,Activity(負責View的繪制以及與用戶交互)相當於V ,View於Model間的交互則為P
理論上感覺區別有點抽象,可以通過下面的圖來看一看其中的區別
Ⅷ 簡書· Android 中 DrawerLayout + ViewPager 怎麼解決滑動沖突
首先,要使用該控制項就需要添加design library,在android studio(還沒有使用Android studio的小夥伴們要趕緊更換啦)中添加依賴
compile 『com.android.support:design:22.2.0』
然後再布局文件中使用TabLayout
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true" />12345
緊接著在下面添加ViewPager
<android.support.v4.view.ViewPager
android:id="@+id/view_pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/tablayout" />12345
布局文件完成了,接下來去定義ViewPager中的適配器,這里我使用的是Fragment,所以繼承自FragmentPagerAdapter ,代碼如下:
public class MyPageAdapter extends FragmentPagerAdapter {
ArrayList<Fragment> datas;
ArrayList<String> titles;
public CommunityPageAdapter(FragmentManager fm) {
super(fm);
}
public void setData(ArrayList<Fragment> datas) {
this.datas = datas;
}
public void setTitles(ArrayList<String> titles) {
this.titles = titles;
}
@Override
public Fragment getItem(int position) {
return datas == null ? null : datas.get(position);
}
@Override
public int getCount() {
return datas == null ? 0 : datas.size();
}
@Override
public CharSequence getPageTitle(int position) {
return titles == null ? null : titles.get(position);
}
}
適配器中需要兩個數據集合,分配填充Fragment和顯示的標題。
然後在需要使用的頁面添加如下代碼:
MyPageAdapter myPageAdapter = new MyPageAdapter(getFragmentManager());
ArrayList<Fragment> datas = new ArrayList<Fragment>();
datas.add(new AFragment());
datas.add(new BFragment());
datas.add(new CFragment());
myPageAdapter.setData(datas);
ArrayList<String> titles = new ArrayList<String>();
titles.add("A");
titles.add("B");
titles.add("C");
myPageAdapter.setTitles(titles);12345678910111213
現在適配器和數據已經准備好了,那麼接下來就是要把數據放入ViewPager中,並使ViewPager和TabLayout相關聯:
TabLayout tabLayout = (TabLayout) findViewById(R.id.tablayout);
ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
// 將適配器設置進ViewPager
viewPager.setAdapter(myPageAdapter);
// 將ViewPager與TabLayout相關聯
tabLayout.setupWithViewPager(viewPager);123456
關聯之後運行發現,其實ViewPager由於預載入機制,導致每次都會提前載入下一個頁面,如果頁面的數據量大,那麼這將會佔用大量的內存,有什麼辦法可以只載入當前顯示的頁面呢看
通過查找相關資料發現,有一個方法setOffscreenPageLimit(int),該方法的作用是設置提前載入頁面的數量,嘗試使用viewPager.setOffscreenPageLimit(0);後發現無效。
繼續查閱資料後發現,原來這是由於ViewPager的機制導致的,最少需要預載入一個頁面,Requested offscreen page limit 0 too small; defaulting to 1,相關問題鏈接:
發現了可以完美解決該問題的方法:
在Fragment中有一個方法,setUserVisibleHint,該方法可以獲取當前頁面的展示情況
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
// 頁面正在展示,在這里載入你的數據
}else{
// 頁面沒有展示
}
}12345678910
基本到這一步功能已經實現了,但是,還有一些細節需要注意,到底ViewPager滑動的時候為什麼會造成TabLayout的標題也隨之更換呢看原來setupWithViewPager被調用的時候,執行了下面的代碼
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(this));
this.setOnTabSelectedListener(new TabLayout.(viewPager));
到最後,還有一個問題,那麼就是如果我們的標題有多條,導致超出了TabLayout的顯示範圍,這該如何解決呢看很簡單,查閱官方API發現,TabLayout有一個方法是setTabMode,它是用來設置TabLayout的展示模式,而這個方法接受兩個常量,MODE_SCROLLABLE 以及 MODE_FIXED,顯而易見,當我們設置為MODE_SCROLLABLE 它就能自動根據標題的數量,滑動展示啦,功能到這里就完美實現了!
Ⅸ 如何在導航欄添加菜單 android 簡書
「 」這里教你關機菜單里加入重啟項,不通過第三方軟體,純手工修改系統文件,但我覺得挺麻煩