Thắng STAR❤️

💚 Bài Viết Gần Đây 💚

React Native Course

 

Tạo project

+ Project Expo: expo init AwesomeProject

+ Project CLI: npx react-native init MyProject

run app:

+ Expo: npm start

+ Cli: npx react-native run-android

 

-        flexDirection:

columnCột ): Căn chỉnh các con từ trên xuống dưới.

row(Hàng ngang): Căn chỉnh con từ trái sang phải.

-        alignItems:

 center: căn giữa theo hướng của flexDirection:

vd:

- flexDirection = ‘row’, alignItems: center => căn giữa dọc

- flexDirection = ‘column’ => căn giữa ngang

 

justifyContent: space-between: căn 2 bên theo hướng cha

flexWrap: ‘wrap’: cho phép xuống hàng

 

Flutter Color:  extendsion vs code=> react native

Native stack navigator: Di chuyển giữa các trang

Info: https://reactnative.dev/docs/navigation

Bottom navigation: muốn sử dụng cái này cần import Native stack navigator trước

Info: https://reactnavigation.org/docs/bottom-tab-navigator/

Use:

import { createBottomTabNavigator } from '@react-navigation/bottom-tabs'

<NavigationContainer>

   

    <BottomNavigation></BottomNavigation>

  </NavigationContainer>

 

export default function BottomNavigation() {

  return (

    <Tab.Navigator>

        <Tab.Screen name='Home'  component={HomeScreen})/>

        <Tab.Screen name='Login' component={LoginScreen}/>

    </Tab.Navigator>

  )

}

 

Đặt kích thước ảnh không chiếm hết màn hình:

Kích cỡ ảnh trong hình: 631x925

Sử dụng Dimensions để tính toán chiều dài, rộng của màn hình:

1.     import { Dimensions } from 'react-native';

2.     const windowWidth = Dimensions.get('window').width;

const windowHeight = Dimensions.get('window').height;

 

Set proxy powershell:

npm set proxy http://192.168.206.118:10809/ 

 

Chú ý: Sau khi cài xong thư viện nhớ đồng bộ:

cd android

./gradlew clean

 

 

 

Thư viện Icon:

Trang web: https://icons.expo.fyi/

 

 

 

 

Import:

import Icon from 'react-native-vector-icons/dist/AntDesign';

use:

<Icon

  name="right"

  size={18}

  color={Color.textPrimary}>

</Icon>

 

 

Tool debug nâng cao: npx react-devtools

 

ANIMATION:

Event:  đầu và cuối hoạt ảnh

Ví dụ: chạy hoạt ảnh theo 1 trình tự(sequence)

 

UseEffect

useEffect(callback): Call back sẽ chạy sau khi render xong các component

vd: useEffect(()=>{

            console.log(‘this is useEffect’)

})

Return(

            <View>

{console.log(‘this is render’)}

<View/>

)

 

Output:

This is render

This is useEffect

useEffect(callback,[deps]): Chỉ chạy sau khi render và trạng thái deps thay đổi:

-        deps là 1 biến có thể là useState, useRef

vd:

const [name, setname] = useState(‘Thắng’)

useEffect(()=>{

          console.log(‘hello’)

})

Return(

<View>

          <Button title=’changeName’

onPress= ()=>setName(‘ThangDeepTry’)/>  

<View/>)

 

Output:

hello

ANDROID java course


 

Xử lí đa luồng

Kế thừa class Thread: override hàm:

+ run: nội dung cần xử lý

+ start: bắt đầu chạy

+ setPriority: set độ ưu tiên

+…

Ẩn title và full screen

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
       
WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

ActionBar actionBar = getSupportActionBar();
actionBar.hide();

 

Action bar:

-        Thêm item trong action bar:

1.     Khai báo app, import cái resauto để nó tự động thay đổi phù hợp theo đúng kích thước màn hình

2.     Thêm 1 item có id là add_item

+ icon là đường dẫn hình item trong drawable

+ title: tên chính của item

+ showAsAction: luôn hiện, ẩn,…

 

xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/add_item" android:icon="@drawable/add" android:title="New" app:showAsAction="always"></item>

 

Background button không thể thay đổi, hãy kiểm tra file themes.xml (trong file theme) đã để:

Theme.AppCompat.Light.NoActionBar

 

Phím tắt:

Shift 2 lần để di chuyển giữa các tab nhanh hơn

 

Cách tạo toolbar:

1.     Chuyển sang noActionbar

2.     Tạo toolbar trong xml chính

3.     Trỏ id đến toolbar vừa tạo

4.     Tạo menu trong res

5.     Tạo file toolbar xml trong menu vừa tạo

6.     Thêm các item cho toolbar vừa tạo

7.     Set toolbar vừa tạo cho activity:

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater()
;
   
menuInflater.inflate(R.menu.toolbar_main, menu);
    return true;
}

8.     Set actionbar trong activity bằng:

setSupportActionBar

 

Cách debug:

1.     Viết hàm Log.i và biến cần xem giá trị

2.     Đặt breakpoint

3.     Nhấp vào icon debug(hình con bọ): bắt đầu debug

4.     Nhấp vào để step over

5.     Quan sát các giá trị biến.

 

Tạo số ngẫu nhiên sử dụng đa luồng

(ít tốn kém hơn so với việc sử dụng lớp java.util.Random):

ThreadLocalRandom.current().nextInt(min, max+1)

 

 

Adapter: set dữ liệu, liên kết các view. => tạo thành list view, …

LayoutInflater: Chuyển đổi từ layout sang kiểu View

 

gridView: view theo dạng khối

listView: view theo dạng danh sách

ViewPager: view theo dạng từng page.

ð  gridView, listView: kế thừa từ baseAdapter

ð  ViewPager: kế thừa từ PagerAdapter, và cần override destroyItem và instantiateItem.

 

Chạy action khi có tin nhắn đến:

1.     Đăng kí và cấp quyền SMS trong manifest

<uses-permission android:name="android.permission.RECEIVE_SMS">
</uses-permission>

2.     Tạo 1 class action khi có tin nhắn đến extend từ BroadcastReceiver

3.     Tạo 1 receiver trong manifest. SỰ kiện khi có tin nhắn mới

<receiver android:name=".SMSReceiver"
   
android:exported="true">
    <intent-filter>
        <action
android:name="android.provider.Telephony.SMS_RECEIVED"></action>
    </intent-filter>
</receiver>

 

 

 

Cách đọc tin nhắn:

1.     Tạo 1 bundle để get được dữ liệu từ intent trong onReceive

2.     Get pdus trong bundle và chuyển thành object get pdus trong bundle

3.     Dùng for để duyệt hết các object

4.     Tạo SmsMessage lấy dữ liệu từ pdus

 

Kết nối firebase =>

1.     Lấy mã SHA1:

2.    

3.     Add các thư viện theo hướng dẫn trong web firebase

4.     Create FireBaseDatabase, DatabaseRefenrece

5.     Từ databaseReference ta có thể truy xuất đến file con bằng: child, set giá trị: setValue.

databaseReference.child("users").child(“name”).setValue(“Thắng đẹp trai!”);

 

 

Get dữ liệu trong firebase

Child đến key có value là 1 object, sau đó duyệt mảng

! class user trong ví dụ phải có 2 contractor:  1 là rỗng, 2 là contractor truyền value

 

Lấy data up lên list view:

1.     Tạo 1 layout adapter

2.     Tạo adapter kế thừa từ base adapter

3.     setAdapter cho listview

4.     thêm sự kiện: addChild

firebaseDatabase = FirebaseDatabase.getInstance();
databaseReference = firebaseDatabase.getReference().child("user");

databaseReference.addChildEventListener(this);

5.     add dữ liệu vào array của bạn

Tut Check Group 28/6/2019 | Thắng Star

yêu cầu: bạn phải là thành viên trong group đó
B1: dame hết quản trị viên trong gr đó dạng faq vô hiệu hoá (277,723,030,...)
B2: mở trình duyệt pc > vô chrome dán link group đó vô.
- trước link có m. thì đổi thành www.
B3: nhấn vào dấu 3 chấm sẽ hiện dòng: hãy tiến cử tôi làm quản trị viên > click vô
- Nó sẽ hiện you is admin... > Thành công !
- Vô và tận hưởng hết quền của quản trị viên
..... end tut: Thắng Star
!!!!! coppy nhớ ghi nguồn !!!!

Tut dame 277 IP 5s| cập nhật 2019

b1: tải xuống a t, bìa nạn nhân
b2: mở tab ẩn danh tạo tài khoản mới để tên , ngày sinh giống nó
- nếu nó giấu ngàu sinh thì để 1-1-1990
- nhớ tạo bằng 2 ndline để k bị cp
b3: dán link fb nó vô
- up avt, bìa, tiểu sử biệt danh giống nạn nhân
- để quê quán là los Angeles
- ra ngoài và đổi thành ngôn ngữ trung giản thể
- coppy link nạn nhân lại

b4: mở ứng dụng hola, fake ip chi lê...
- dán link nạn nhân
- tiến hành báo cáo trang này mạo danh tôi
- báo cáo trang cá nhân này giả mạo
- nếu chưa die thì nhấn vô ảnh đại diện nó báo cáo ảnh khoả thân
- nhấn vô ảnh bìa, báo cáo khoả thân tiếp
=> hóng die 5s - 24h tùy vào độ trâu ( thường thì 5s là die rồi )

.......end tut by thắng star

[vanthangblog] TUT check acc cổ 2018 mới nhất

- kiếm một cái tên nước ngoài rồi thêm dấu gạch ngang và số + đuôi @hotmail.com
Ví dụ: okmaid_123@hotmail.com
- vào m.facebook.com và nhập hotmail đấy vô, mk thì nhập bậy :)
- nhập bừa vô và đăng nhập. Nếu nó hiện sai mk thì oke
- bật tab mới vô outlook.live.com. Bấm vào tạo tk mới và nhập tên hotmail và để đuôi @hotmail.com
Nếu nó hiện hotmail đã có người dùng thì quay lại bước 1 @@!!
Đến khi nào nó hiện ra bảng điền mk thì ta diền vô, ngày tháng năm sinh nhập bừa.
- nhập xong ngày sinh thì ta fake ip pháp rồi ấn tiếp theo để tránh bị xác minh sđt
- quay lại fb nhấn quên mk và gửi mã xác minh
-  vô lại hotmail, nếu mã về thì nhập mã vô và mk mới
- trong trường hợp mã k về thì ta vô link contact sau: https://m.facebook.com/help/contact/255904741169641
Chọn dòng thứ 4 và nhập hotmail vô... Còn tên, thông tin nhập bừa :D
2p sau mail fb chắc chắn sẽ về... Ta lại bấm quên mk rồi gửi mã
Mã sẽ về và nhập mã vô rồi nhập mk mới :D
Thường thì acc sẽ về khoảng năm 2006-2015
done tut!
  • Ảnh Bìa Tổng Hợp
    Thắng❤️
  • Thủ Thuật Blogspot
    Star❤️
  • Thủ Thuật Facebook
    716❤️ :>