Home_news_item.xml

本文介绍了一种使用XML定义的用户界面布局,详细解析了RelativeLayout中的组件属性及排列方式。通过ImageView和TextView等元素实现图标与文本的结合展示。
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout android:id="@+id/report_item"
 android:background="@drawable/android_list_row_bg"
 android:paddingLeft="10.0dip"
 android:paddingTop="7.0dip"
 android:paddingRight="10.0dip"
 android:paddingBottom="7.0dip"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
   xmlns:android=" http://schemas.android.com/apk/res/android">
   
    <ImageView android:id="@+id/news_index_icon"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:src="@drawable/news_index_icon"
     android:layout_alignParentLeft="true"
     android:layout_centerVertical="true" />
    
    <TextView android:textSize="16.0dip"
     android:textColor="#ff000000"
     android:ellipsize="end"
     android:id="@+id/news_title"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_marginLeft="8.0dip"
     android:singleLine="true"
     android:layout_weight="1.0"
     android:layout_toRightOf="@id/news_index_icon"
     android:layout_centerVertical="true" />
     
    <ImageView android:layout_width="13.0dip"
     android:layout_height="13.0dip"
     android:src="@drawable/android_list_idex"
     android:layout_alignParentRight="true"
     android:layout_centerVertical="true" />
</RelativeLayout>
package com.lc.bailingbird; import static com.lc.bailingbird.base.BaseApplication.Blistener; import static com.lc.bailingbird.base.BaseApplication.bluetoothSDK; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.graphics.Color; import android.net.Uri; import android.os.Bundle; import android.text.TextUtils; import android.util.Log; import android.view.KeyEvent; import android.view.View; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentResultListener; import androidx.viewpager2.adapter.FragmentStateAdapter; import androidx.viewpager2.widget.ViewPager2; import com.bes_ota.bluetoothsdk.BluetoothSDK; import com.google.android.material.badge.BadgeDrawable; import com.lc.bailingbird.base.BaseActivity; import com.lc.bailingbird.base.BaseApplication; import com.lc.bailingbird.conn.BaseAsyCallBack; import com.lc.bailingbird.conn.CartListPost; import com.lc.bailingbird.databinding.ActivityMainBinding; import com.lc.bailingbird.dialog.CommonDialog; import com.lc.bailingbird.fragment.ChatFragment; import com.lc.bailingbird.fragment.HomeFragmentNew; import com.lc.bailingbird.fragment.MarketFragment; import com.lc.bailingbird.fragment.MineFragment; import com.lc.bailingbird.fragment.MyFragment; import com.lc.bailingbird.fragment.NewsFragment; import com.lc.bailingbird.home.GoodDetailActivity; import com.lc.bailingbird.home.NewcomerGuideActivity; import com.lc.bailingbird.home.WebActivity; import com.lc.bailingbird.home.launcherActivity; import com.lc.bailingbird.login.ForgetPWDActivity; import com.lc.bailingbird.login.LoginActivity; import com.lc.bailingbird.login.RegisterActivity; import com.lc.bailingbird.mine.WelcomeActivity; import com.lc.bailingbird.util.BluetoothUtil; import com.lc.bailingbird.util.GlideImageLoader; import com.lc.bailingbird.util.SPManager; import com.mob.MobSDK; import com.petterp.floatingx.FloatingX; import com.petterp.floatingx.assist.FxGravity; import com.petterp.floatingx.assist.helper.AppHelper; import com.petterp.floatingx.impl.lifecycle.FxTagActivityLifecycleImpl; import com.qiyukf.nimlib.sdk.StatusBarNotificationConfig; import com.qiyukf.unicorn.api.ConsultSource; import com.qiyukf.unicorn.api.OnMessageItemClickListener; import com.qiyukf.unicorn.api.Unicorn; import com.qiyukf.unicorn.api.YSFOptions; import com.qiyukf.unicorn.ui.activity.LeaveMessageActivity; import com.qiyukf.unicorn.ui.activity.ServiceMessageActivity; import com.tencent.bugly.crashreport.CrashReport; import com.zcx.helper.view.toast.ToastUtils; public class MainActivity extends BaseActivity<ActivityMainBinding> { FragmentStateAdapter adapter; // boolean ISCLICK = true; // CommonDialog dialog; @Override protected void iniClick() { getSupportFragmentManager().setFragmentResultListener("position", this, new FragmentResultListener() { @Override public void onFragmentResult(@NonNull String requestKey, @NonNull Bundle result) { Log.e("HOME_TAG", "滑动?" + result.getInt("position")); binding.viewpager.setCurrentItem(result.getInt("position"), true); if (result.getInt("position") == 1 && result.containsKey("title")) { getSupportFragmentManager().setFragmentResult("classTitle", result); } } }); } @Override public void iniView() { super.iniView(); // dialog = new CommonDialog(MainActivity.this, "提示", "客服功能需要麦克风权限"); binding.viewpager.setAdapter(adapter = new FragmentStateAdapter(this) { @NonNull @Override public Fragment createFragment(int position) { switch (position) { case 0: return new NewsFragment(); case 1: return new MarketFragment(); case 2: return new HomeFragmentNew(); case 3: return new ChatFragment(); default: return new MineFragment(); } } @Override public int getItemCount() { return 5; } }); binding.viewpager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @Override public void onPageSelected(int position) { super.onPageSelected(position); switch (position) { case 0: binding.tab.setSelectedItemId(R.id.menu_news); break; case 1: binding.tab.setSelectedItemId(R.id.menu_market); break; case 2: binding.tab.setSelectedItemId(R.id.menu_home); break; case 3: binding.tab.setSelectedItemId(R.id.menu_message); break; case 4: binding.tab.setSelectedItemId(R.id.menu_my); break; } } }); // binding.tab.setSelectedItemId(R.id.menu_home); binding.tab.setOnItemSelectedListener(item -> { int itemId = item.getItemId(); if (itemId == R.id.menu_news) { binding.viewpager.setCurrentItem(0, true); return true; } else if (itemId == R.id.menu_market) { binding.viewpager.setCurrentItem(1, true); return true; } else if (itemId == R.id.menu_home) { binding.viewpager.setCurrentItem(2, true); return true; } else if (itemId == R.id.menu_message) { if (!SPManager.get().getLoginStatus()) { LoginActivity.start(this); return false; } binding.viewpager.setCurrentItem(3, true); return true; } else if (itemId == R.id.menu_my) { if (!SPManager.get().getLoginStatus()) { LoginActivity.start(this); return false; } binding.viewpager.setCurrentItem(4, true); return true; } return false; }); } @Override protected void onDestroy() { super.onDestroy(); // EventBus.getDefault().unregister(this); } public void setPrivate() { MobSDK.submitPolicyGrantResult(true); CrashReport.initCrashReport(getApplicationContext(), "2a231036be", false); } @Override protected void onResume() { super.onResume(); getCartNum(); } public void getCartNum() { new CartListPost(new BaseAsyCallBack<CartListPost.RespBean>(MainActivity.this) { @Override protected void onStart() { super.onStart(); } @Override protected void onSuccess(String toast, CartListPost.RespBean bean) { BadgeDrawable badge = binding.tab.getOrCreateBadge(R.id.menu_message); if (bean.getResult().isEmpty()) { binding.tab.removeBadge(R.id.menu_message); } else { if (bean.getResult().size() > 0) { badge.setVisible(true); badge.setVerticalOffset(10); badge.setNumber(bean.getResult().get(0).getList().size()); badge.setBackgroundColor(Color.parseColor("#F30B14")); badge.setBadgeTextColor(Color.parseColor("#FFFFFF")); badge.setMaxCharacterCount(99); } else { binding.tab.removeBadge(R.id.menu_message); } } } @Override protected void onFail(String toast) { ToastUtils.show(toast); } @Override protected void onEnd(String toast) { super.onEnd(toast); } }).execute(false); } private long mExitTime; @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTime) > 2000) { ToastUtils.show("再按一次退出APP"); mExitTime = System.currentTimeMillis(); } else { //后台运行 不结束程序 只是退出到后台 Intent intent = new Intent(); intent.setAction("android.intent.action.MAIN"); intent.addCategory("android.intent.category.HOME"); startActivity(intent); //System.exit(0); //常规java、c#的标准退出法,返回值为0代表正常退出 结束程序 } return true; } return super.onKeyDown(keyCode, event); } } 怎么在ViewPager滑动的时候添加是否登录验证
07-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值