移动技术开发作业
作业一
- APP门户界面设计
- 要求
- 界面
- 源代码
- activity_main
- top
- tab
- bottom
- MainActivity
- friend_Fragment
- gitee代码仓库
要求
内容:请根据课程实操实现APP门户界面框架设计,至少包含4个tab页,能实现tab页之间的点击切换;
技术:使用布局(layouts)和分段(fragment),对控件进行点击监听;
top
tab
其他tab大致相同
bottomMainActivity
package com.example.mywechat;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.view.View;
import android.view.Window;
import android.os.Bundle;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import static com.example.mywechat.R.id.action_bar;
import static com.example.mywechat.R.id.id_content;
public class MainActivity extends AppCompatActivity implements View.onClickListener {
private Fragment mtab01 = new weixin_Fragment();
private Fragment mtab02 = new friend_Fragment();
private Fragment mtab03 = new txl_Fragment();
private Fragment mtab04 = new setting_Fragment();
private FragmentManager fm;
private LinearLayout mTabWeixin;
private LinearLayout mTabFrd;
private LinearLayout mTabContact;
private LinearLayout mTabSettings;
private ImageButton mImgWeixin;
private ImageButton mImgFrd;
private ImageButton mImgContact;
private ImageButton mImgSettings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
ActionBar action_bar=getSupportActionBar();
if(action_bar!=null)
action_bar.hide();
setContentView(R.layout.activity_main);
initFragment();
initview();
setselect(0);
initEvent();
}
private void initFragment(){
fm =getFragmentManager();
FragmentTransaction transaction=fm.beginTransaction();
transaction.add(R.id.id_content,mtab01);
transaction.add(R.id.id_content,mtab02);
transaction.add(R.id.id_content,mtab03);
transaction.add(R.id.id_content,mtab04);
transaction.commit();
}
private void initview(){
mTabWeixin=(LinearLayout)findViewById(R.id.id_tab_weixin);
mTabFrd=(LinearLayout)findViewById(R.id.id_tab_frd);
mTabContact=(LinearLayout)findViewById(R.id.id_tab_txl);
mTabSettings=(LinearLayout)findViewById(R.id.id_tab_setting);
mImgWeixin=(ImageButton)findViewById(R.id.weixin_img);
mImgFrd=(ImageButton)findViewById(R.id.frd_img);
mImgContact=(ImageButton)findViewById(R.id.txl_img);
mImgSettings=(ImageButton)findViewById(R.id.settong_img);
}
private void setselect(int i){
FragmentTransaction transaction=fm.beginTransaction();
hideFragment(transaction);
switch (i){
case 0:
transaction.show(mtab01);
mImgWeixin.setImageResource(R.drawable.tab_weixin_pressed);
break;
case 1:
transaction.show(mtab02);
mImgFrd.setImageResource(R.drawable.tab_find_frd_pressed);
break;
case 2:
transaction.show(mtab03);
mImgContact.setImageResource(R.drawable.tab_address_pressed);
break;
case 3:
transaction.show(mtab04);
mImgSettings.setImageResource(R.drawable.tab_settings_pressed);
break;
default:
break;
}
transaction.commit();
}
private void hideFragment(FragmentTransaction transaction){
transaction.hide(mtab01);
transaction.hide(mtab02);
transaction.hide(mtab03);
transaction.hide(mtab04);
}
@Override
public void onClick(View view) {
resetImgs();
switch(view.getId())
{
case R.id.id_tab_weixin:
setselect(0);
break;
case R.id.weixin_img:
setselect(0);
break;
case R.id.id_tab_frd:
setselect(1);
break;
case R.id.frd_img:
setselect(1);
break;
case R.id.id_tab_txl:
setselect(2);
break;
case R.id.txl_img:
setselect(2);
break;
case R.id.id_tab_setting:
setselect(3);
break;
case R.id.settong_img:
setselect(3);
break;
default:
break;
}
}
private void resetImgs(){
mImgWeixin.setImageResource(R.drawable.tab_weixin_normal);
mImgFrd.setImageResource(R.drawable.tab_find_frd_normal);
mImgContact.setImageResource(R.drawable.tab_address_normal);
mImgSettings.setImageResource(R.drawable.tab_settings_normal);
}
private void initEvent(){
mTabWeixin.setOnClickListener(this);
mTabFrd.setOnClickListener(this);
mTabContact.setOnClickListener(this);
mTabSettings.setOnClickListener(this);
mImgWeixin.setOnClickListener(this);
mImgFrd.setOnClickListener(this);
mImgContact.setOnClickListener(this);
mImgSettings.setOnClickListener(this);
}
}
friend_Fragment
package com.example.mywechat;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.app.Fragment;
public class friend_Fragment extends Fragment {
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public friend_Fragment() {
// Required empty public constructor
}
// TODO: Rename and change types and number of parameters
public static friend_Fragment newInstance(String param1, String param2) {
friend_Fragment fragment = new friend_Fragment();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.tab02, container, false);
}
}
gitee代码仓库
链接: gitee.



